0

您好我已经在 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];

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

4

1 回答 1

0

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

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

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

于 2017-04-26T19:16:05.850 回答