您好我已在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];
有些用户可以登录并访问数据库,但有些用户收到错误消息,说用户登录失败。 我需要提供更多权限吗?
答案 0 :(得分:0)
默认情况下,未指定特定数据库的Azure SQL连接将尝试登录master数据库。由于AAD使用基于组的成员身份,因此如果用户是可以访问主数据库的组的一部分,则他们将能够登录。拒绝登录的用户通常会被拒绝,因为他们没有被授予master的权限,并且在连接字符串中没有指定特定的数据库。
通过SSMS进行连接:在“连接到数据库引擎”对话框中,选择“选项”按钮,“连接属性”选项卡,并在“连接到数据库:”下拉列表中指定数据库名称。您需要知道它b / c用户可能无权访问master以读取虚拟数据库服务器上的数据库列表。
您可以从数据库“概述”下的Azure门户获取技术堆栈的连接字符串。
希望这有帮助。