繁体   English   中英

无法将带有系统分配托管标识的 Azure 逻辑应用程序连接到 Azure SQL 服务器

[英]Unable to connect Azure Logic App w/ System Assigned Managed Identity to Azure SQL Server

我不确定我在这里遗漏了什么,但我无法从 Logic App 连接到 Azure SQL。感谢任何帮助。

执行的步骤:

1. 为逻辑应用启用System Assigned Managed Identity (SAMI)

在此处输入图像描述

2. 在 SQL 服务器(它在另一个资源组中)的Contributor角色中添加了 SAMI

在此处输入图像描述

3. 通过单击Azure role assignments按钮验证 SAMI 角色

在此处输入图像描述

4. 在 SQL 服务器本身的db_datareaderdb_datawriter角色中添加 SAMI 使用:

CREATE USER [SAMI Name] FROM EXTERNAL PROVIDER;
ALTER ROLE db_datareader ADD MEMBER [SAMI Name]
ALTER ROLE db_datawriter ADD MEMBER [SAMI Name]

5.验证内部角色是否成功:

SELECT DP1.name AS DatabaseRoleName,
    isnull (DP2.name, 'No members') AS DatabaseUserName
FROM sys.database_role_members as DRM
RIGHT OUTER JOIN sys.database_principals as DP1 
    ON DRM.role_principal_id = DP1.principal_id
LEFT OUTER JOIN sys.database_principals as DP2  
    ON DRM.member_principal_id = DP2.principal_id
WHERE DP1.type = 'R'
ORDER BY DP1.name;

6. 在逻辑应用程序设计器中添加Get Rows (V2) Azure SQL 操作并创建连接

在此处输入图像描述

7. 可以看到没有找到服务器,所以我输入SQL服务器名作为自定义值

在此处输入图像描述

8. 让数据库名称加载几分钟后,操作出错:

在此处输入图像描述

错误文本:

Could not retrieve values. Error code: 'Unauthorized', Message: 'Credentials are missing or not valid.
     inner exception: The credentials provided for the SQL source are invalid. (Source at xxx.database.windows.net.)
clientRequestId: da158fe9-xxx'. More diagnostic information: x-ms-client-request-id is 'B1CBF136-xxx'.

我已经在 SQL 服务器上允许 Azure 服务,所以我不明白为什么会这样

在此处输入图像描述

我不确定这是什么原因,但我发现如果您还输入数据库名称作为自定义值,那么连接就可以正常工作。

我经历过和你完全一样的症状。 手动输入数据库名称后,表名列表会自动填充。

我还发现没有必要将 SAMI 作为贡献者添加到 SQL 服务器(至少,对于这个特定的解决方法而言)。

在输入自定义数据库名称之前: 在输入自定义数据库名称之前

输入自定义数据库名称后: 输入自定义数据库名称后

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM