我不确定这里缺少什么,但我无法从逻辑应用连接到 Azure SQL。如有任何帮助,我们将不胜感激。
执行的步骤:
<强>1。为逻辑应用启用系统分配的托管身份
(SAMI)
<强>2。在 SQL Server 的Contributor
角色中添加了 SAMI(位于另一个资源组中)
<强>3。通过单击 Azure 角色分配
按钮
<强>4。在 SQL Server 本身的 db_datareader
和 db_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。在逻辑应用设计器中添加获取行 (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 Server 上允许使用 Azure 服务,因此我不明白为什么会发生这种情况
最佳答案
我不确定其原因,但我发现如果您还输入数据库名称作为自定义值,则连接可以正常工作。
我的症状和你一模一样。手动输入数据库名称后,表名称列表会自动填充。
我还发现没有必要将 SAMI 添加为 SQL Server 的贡献者(至少对于这个特定的解决方法来说不是)。
关于azure-sql-database - 无法将带有系统分配托管标识的 Azure 逻辑应用连接到 Azure SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71201871/