Azure SQL数据库v12 AD身份验证,某些用户无法登录

时间:2017-04-17 13:43:56

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

您好我已在Azure SQL Server上配置Azure Active Directory身份验证。 之后,我使用以下查询在SQL数据库中添加了包含数据库用户

创建用户

CREATE USER [John.Marsh@contoso.com] FROM EXTERNAL PROVIDER;

分配以下权限

EXEC sp_addrolemember 'db_datareader', 'John.Marsh@contoso.com';
GO
EXEC sp_addrolemember 'db_datawriter', 'John.Marsh@contoso.com';
GO
GRANT EXECUTE ON SCHEMA :: dbo TO [John.Marsh@contoso.com];
GO
GRANT ALTER ON SCHEMA :: dbo TO [John.Marsh@contoso.com]; 

GRANT CREATE TABLE  TO [John.Marsh@contoso.com];
GRANT SELECT,DELETE,UPDATE,INSERT TO [John.Marsh@contoso.com];
GRANT VIEW ANY COLUMN MASTER KEY DEFINITION to [John.Marsh@contoso.com];
GRANT VIEW ANY COLUMN ENCRYPTION KEY DEFINITION to [John.Marsh@contoso.com];

有些用户可以登录并访问数据库,但有些用户收到错误消息,说用户登录失败。 我需要提供更多权限吗?

1 个答案:

答案 0 :(得分:0)

默认情况下,未指定特定数据库的Azure SQL连接将尝试登录master数据库。由于AAD使用基于组的成员身份,因此如果用户是可以访问主数据库的组的一部分,则他们将能够登录。拒绝登录的用户通常会被拒绝,因为他们没有被授予master的权限,并且在连接字符串中没有指定特定的数据库。

通过SSMS进行连接:在“连接到数据库引擎”对话框中,选择“选项”按钮,“连接属性”选项卡,并在“连接到数据库:”下拉列表中指定数据库名称。您需要知道它b / c用户可能无权访问master以读取虚拟数据库服务器上的数据库列表。

您可以从数据库“概述”下的Azure门户获取技术堆栈的连接字符串。

希望这有帮助。