我有一个带有两个数据库的 Azure SQL Server,我尝试对其使用 Azure Active Directory 集成身份验证。其中一个数据库至关重要,大多数用户只需要被授予对此数据库的“读”访问权限。
要添加具有“读者角色”的新用户,我执行了以下操作:
从 Azure 门户的访问控制 (IAM) 下添加了具有读者角色的用户。
执行此步骤后用户无法连接。
-
然后我尝试使用以下命令添加用户:
创建用户 [[电子邮件受保护] /cdn-cgi/l/email-protection] 来自外部提供商;
sp_addrolemember db_datareader, [[电子邮件受保护] /cdn-cgi/l/email-protection];
用户仍然无法使用 AAD 集成身份验证连接到服务器。在这两种情况下,我都会收到匿名登录错误。
单击查看错误消息的片段 https://i.stack.imgur.com/qNN2Z.png
我错过了什么吗?如果没有,是否有其他方法可以向数据库添加具有特定权限的用户?
抱歉耽搁了,M。
是的,您混淆了两种不同级别的访问控制;您描述的 IAM 控件(读者角色分配)允许用户查看(读取)Azure 门户中的设置。相反,我怀疑您希望用户(经过 AAD 身份验证)能够只读服务器上的数据。这是通过 T-SQL 完成的,与门户定义的访问控制无关。
现在,您尝试在数据库级别创建外部用户(AAD 访问权限),并且希望他们具有读取权限 - 确保您已涵盖所有步骤此处概述 https://azure.microsoft.com/en-us/documentation/articles/sql-database-aad-authentication/.
乍一看,以下可能是必要的步骤:
1.) 确保您已为 SQL Server 分配 AAD 管理员。
2.) 确保您正在连接到要在其上创建用户的数据库,不是主数据库就像您通常在非 Azure SQL Server 实例上所做的那样。使用以下命令通过 T-SQL 创建用户:CREATE USER <Azure_AD_principal_name> FROM EXTERNAL PROVIDER;
3.) 授予用户 db_datareader 对该数据库的权限:
ALTER ROLE db_datareader ADD MEMBER <Azure_AD_principal_name>
GO
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)