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

Azure active directory Azure SQL数据库v12 AD身份验证,某些用户无法登录,azure-active-directory,azure-sql-database,azure-sql-server,Azure Active Directory,Azure Sql Database,Azure Sql Server,您好,我已在Azure SQL Server上配置Azure active directory身份验证。 之后,我使用以下查询在SQL数据库中添加了包含的DB用户 创建用户 CREATE USER [John.Marsh@contoso.com] FROM EXTERNAL PROVIDER; 已分配以下权限 EXEC sp_addrolemember 'db_datareader', 'John.Marsh@contoso.com'; GO EXEC sp_addrolemember 'db

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

创建用户

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];
有些用户可以登录并访问数据库,但有些用户收到错误消息,表示该用户登录失败。
是否需要提供更多权限?

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

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


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

无法访问数据库的用户类型是什么?您是否向所有这些用户授予相同的权限?是的,所有用户都授予相同的权限,并且用户类型为成员。能够访问的用户还具有作为成员的用户类型。