是否可以使用Azure VM中创建的数据库作为Azure Analysis Services中创建的模型的数据源?
到目前为止,当我在Web设计器和测试连接中为模型指定连接属性时,我收到一条错误,指出“已成功与服务器建立连接,但在登录过程中发生了错误。(提供者SSL提供程序,错误:0 - 证书链由不受信任的机构颁发。)
我可以通过SSMS和RDP连接到服务器。我在azure密钥库中创建了一个自签名证书,并且能够让SQL服务器使用它。但是,在连接模型时,我似乎无法找到如何使用它。
有谁知道是否可能,如果可能,我应该怎么做才能使它工作?
最后我设法让它发挥作用。对于有类似问题的人,我会在下面写下我的解决方案。
对于错误“证书链是由不受信任的权限发布” - 正如TJB在评论中链接的线程中所讨论的那样,这是因为我没有CA签名证书,而是自签名证书。
来自Azure的CA签名证书可能会解决问题,但我尝试了Let的加密站点(也链接在另一个线程中)。我在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数据库作为源/连接类型,并填充了与我的VM SQL服务器的连接。我看到了我的数据库表,但是当我尝试查询数据时,我收到一个新错误,说明AAS需要设置内部部署数据网关。
Microsoft docs Install and configure an on-premises data gateway描述了如何在VM上安装内部部署数据网关,但如果您像我一样使用个人帐户进行azure,则会出现将帐户绑定到网关的问题。暗示here的解决方案是在Azure Active Directory中创建一个新帐户(我创建了一个新用户并在我的azure自定义域下注册,因此登录看起来像[email protected])。我给了用户admin角色,以便暂时避免任何azure权限挫折。接下来,我通过订阅 - >“My_subscription” - >访问控制(IAM)将用户添加到我的订阅中,并为AD用户分配了所有者角色。
现在回到我的VM上,我可以将新用户的帐户绑定到网关(在完成设置之前,不要忘记将网关的区域更改为首选区域)。
接下来,在Azure上,我创建了一个“内部部署数据网关”服务(请注意,您需要选择与VM网关所在区域相同的区域)。我现在不确定,如果只有我创建的新AD用户可以看到网关,那么如果您没有看到它,请尝试AD用户。
最后但并非最不重要的是,在Azure Analytics服务中,我进入了“本地数据网关”设置并将其设置为使用我刚刚创建的设置。
有了这个,我就能够创建模型并从数据库中查询数据。
注意:在为分析服务设计的模型网站中,我碰巧以AD用户身份登录,而不是在我的个人帐户下登录。尝试将帐户更改为我的个人帐户最终导致登录失败,但是经过一些此类尝试并在单独的选项卡中打开多个Web设计人员后,我正确地登录了我的个人帐户。过了一会儿,我再也无法复制这个问题了。
我想问题可能是我在设置eveything时在同一个浏览器中同时在我的个人帐户和AD用户下登录到Azure。