azure-sql-database - 无法将带有系统分配托管标识的 Azure 逻辑应用连接到 Azure SQL Server

标签 azure-sql-database azure-logic-apps azure-managed-identity

我不确定这里缺少什么,但我无法从逻辑应用连接到 Azure SQL。如有任何帮助,我们将不胜感激。

执行的步骤:

<强>1。为逻辑应用启用系统分配的托管身份 (SAMI)

enter image description here

<强>2。在 SQL Server 的Contributor 角色中添加了 SAMI(位于另一个资源组中)

enter image description here

<强>3。通过单击 Azure 角色分配 按钮

验证了 SAMI 角色

enter image description here

<强>4。在 SQL Server 本身的 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。在逻辑应用设计器中添加获取行 (V2) Azure SQL 操作并创建连接

enter image description here

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

enter image description here

<强>8。让数据库名称加载几分钟后,操作错误:

enter image description here

错误文本:

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 服务,因此我不明白为什么会发生这种情况

enter image description here

最佳答案

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

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

我还发现没有必要将 SAMI 添加为 SQL Server 的贡献者(至少对于这个特定的解决方法来说不是)。

在输入自定义数据库名称之前: Before entering custom database name

输入自定义数据库名称后: After entering custom database name

关于azure-sql-database - 无法将带有系统分配托管标识的 Azure 逻辑应用连接到 Azure SQL Server,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/71201871/

相关文章:

c# - Azure 应用服务无法访问 SQL Server - 用户登录失败 'NT AUTHORITY\ANONYMOUS LOGON'

swift - 如何查看和编辑 Microsoft Azure SQL 数据库中的数据?

Azure 计费场景问题揭秘

azure - 使用来自 HTTP 请求的响应数据到另一个 Azure

Azure 函数输出绑定(bind)事件网格托管标识

authentication - 对于 token 标识主体,应用服务托管标识与 Azure SQL 数据库登录的连接失败

sql - 如何快速检测并解决数据库的SQL Server索引碎片?

azure-sql-database - Azure 中的 EF6 连接字符串

azure - 无法从 ARM 模板检索逻辑应用程序(标准)工作流程 URL

azure - 致力于自动化以批准来自逻辑应用程序流的拉取请求