最后我设法让它工作。对于任何有类似问题的人,我将在下面写下我的解决方案。
对于错误“证书链是由不受信任的机构颁发的” - 正如 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 分析服务中创建了一个模型,使用 Azure 数据库作为源/连接类型,并填写了与我的 VM SQL 服务器的连接。我看到了我的数据库表,但是当我尝试查询数据时,我收到了一个新错误,指出 AAS 需要设置本地数据网关。
Microsoft 文档 Install and configure an on-premises data gateway 描述了如何在 VM 上安装本地数据网关,但如果您像我一样使用 Azure 个人帐户,您将无法将帐户绑定到网关强>。 here 提示的解决方案是在 Azure Active Directory 中创建一个新帐户(我创建了一个新用户并将其注册到我的 azure 自定义域下,因此登录看起来像 XXX@zzz.onmicrosoft.com)。我给了用户管理员角色,以便暂时避免任何 azure 权限挫折。接下来,我通过 Subscriptions -> "My_subscription" -> Access Control (IAM) 将用户添加到我的订阅中,并为 AD 用户分配了所有者角色。
现在回到我的虚拟机上,我可以将新用户的帐户绑定到网关(不要忘记在完成设置之前将网关的区域更改为您的首选区域)。
接下来,在 Azure 我创建了一个“本地数据网关”服务(请注意,您需要选择与您的 VM 网关所在的区域相同的区域)。我现在不确定,如果只有我创建的新 AD 用户可以看到网关,所以如果您看不到它,请尝试使用 AD 用户。
最后但同样重要的是,在 Azure 分析服务中,我转到“本地数据网关”设置并将其设置为使用我刚刚创建的设置。
有了这个,我能够创建模型并从数据库中查询数据。
注意:
在为分析服务设计的模型网页中,我碰巧在 AD 用户下登录,而不是在我的个人帐户下。尝试将帐户更改为我的个人帐户最终导致登录失败,但是经过几次这样的尝试并在单独的选项卡中打开多个网页设计师后,我在我的个人帐户下正确登录。一段时间后,我无法再复制该问题。
我想问题可能是我在设置所有内容时在同一浏览器中同时使用个人帐户和 AD 用户登录 Azure。