使用Active Directory集成身份验证向Azure Sql数据库添加具有特定权限的新用户

时间:2016-09-28 11:29:10

标签: azure azure-sql-database azure-active-directory

我有一个带有两个数据库的Azure SQL Server,我正在尝试使用Azure Active Directory集成身份验证。其中一个数据库很关键,大多数用户只需要被授予此数据库的“读取”访问权限。

要添加具有“读者角色”的新用户,我执行了以下操作:

  • 从Azure门户网站添加了具有“访问控制”(IAM)下的“读者”角色的用户。 在此步骤之后,用户无法连接。

  • 然后我尝试使用以下命令添加用户:

    从EXTERNAL PROVIDER创建用户[name@domain.com];

    sp_addrolemember db_datareader,[name@domain.com];

用户仍无法使用AAD集成身份验证连接到服务器。在这两种情况下,我都收到匿名登录错误。

Click to see the snip of the error message

我错过了什么吗?如果没有,有没有其他方法可以添加对数据库具有特定权限的用户?

1 个答案:

答案 0 :(得分:4)

对不起,M先生

是的,你混淆了两种不同级别的访问控制;您描述的IAM控件(Reader角色分配)允许用户查看(读取)Azure门户中的设置。相反,我怀疑您希望用户(经过AAD身份验证)能够仅读取服务器上的数据。这是通过T-SQL完成的,与门户网站定义的访问控制无关。

现在,您正在尝试在数据库级别创建外部用户(AAD访问),并且您希望他们具有读取权限 - 请确保您已涵盖所有步骤outlined here

乍一看,以下可能是必要的步骤:

1.确保您已为SQL Server分配了AAD管理员。

2.确保您正在连接到要在非天蓝色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