使用 Azure VM Sql 服务器数据库作为 Azure Analysis Services 模型的来源

Use Azure VM Sql server database as source for Azure Analysis Services model

是否可以使用在 Azure VM 中创建的数据库作为在 Azure Analysis Services 中创建的模型的数据源?

到目前为止,当我在 Web 设计器中为模型指定连接属性并测试连接时,我收到一条错误消息,指出“已成功与服务器建立连接,但随后在登录过程中发生错误。(提供商 SSL 提供商,错误:0 - 证书链是由不受信任的机构颁发的。)

我可以通过 SSMS 和 RDP 连接到服务器。 我在 Azure Key Vault 中创建了一个自签名证书,并且能够让 SQL 服务器使用它。但是我似乎无法找到连接模型时如何使用它。

有谁知道这是否可行,如果可行,我应该怎么做才能让它发挥作用?

最后我设法让它工作了。对于有类似问题的人,我会在下面写下我的解决方案。

对于错误 "The certificate chain was issued by an authority that is not trusted" - 正如 TJB 在评论中链接的线程中所讨论的,这是因为我没有 CA 签名证书,但是自签名一个。

来自 Azure 的 CA 签名证书可能会解决问题,但我尝试了 Let's Encrypt 站点(也在另一个线程中链接)。 Let's Encrypt 的问题是我有一个 windows 服务器,而它们本身支持基于 linux 的系统。 但是,我发现了 Daniel Hutmacher 的一篇名为 Encrypting SQL Server connections with Let’s Encrypt certificates 的文章,它解决了我遇到的问题。 (至于客户端工具,当前版本与文中描述的版本不同,但您仍然可以在github上下载旧版本。我使用的是最新的2017年11月版本)。有了这个,我能够生成 CA 签名证书并将其添加到 SQL 服务器。

此时,我在 Azure Analytics Services 中创建了一个模型,使用 Azure 数据库作为 source/connection 类型并填写了与我的 VM SQL 服务器的连接。我看到了我的数据库表,但是 当我尝试查询数据时,我收到了一个新错误,指出 AAS 需要设置一个本地数据网关

Microsoft 文档 Install and configure an on-premises data gateway describes how to install on-premise data gateway on the VM, but if you are like me and use personal account for azure, you will have issues binding your account to the gateway. The solution as hinted here 是在 Azure Active Directory 中创建一个新帐户(我创建了一个新用户并在我的 azure 自定义域下注册了它,所以登录看起来像 XXX@zzz.onmicrosoft.com ).我给了用户管理员角色,以暂时避免任何天蓝色的权限挫折。接下来,我通过订阅 -> "My_subscription" -> 访问控制 (IAM) 将用户添加到我的订阅中,并为 AD 用户分配了所有者角色。

现在回到我的虚拟机上,我可以将新用户的帐户绑定到网关(不要忘记在完成设置之前将网关的区域更改为您的首选区域)。

接下来,在 Azure 我创建了一个 "on-premise data gateway" 服务(请注意,您需要 select 与您的 VM 网关所在的区域相同在下面)。我现在不确定,如果只有我创建的新 AD 用户可以看到网关,所以如果您看不到它,请尝试使用 AD 用户。

最后但同样重要的是,在 Azure Analytics 服务中,我转到 "on-premises data gateway" 设置并将其设置为使用我刚创建的那个。

有了这个我就可以创建模型并从数据库中查询数据了。

注: 在为分析服务设计的模型 Web 中,我碰巧是以 AD 用户身份登录的,而不是我的个人帐户。尝试将帐户更改为我的个人帐户以登录失败告终,但是经过几次这样的尝试并在不同的选项卡中打开多个网页设计器后,我正确地登录在我的个人帐户下。一段时间后,我无法再重现该问题。

我想问题可能是我在设置所有内容时在同一个浏览器中同时使用我的个人帐户和 AD 用户登录到 Azure。