0

您好我已经Azure的SQL Server上配置Azure的Active Directory身份验证。 之后,我通过使用以下添加上一个SQL数据库包含的数据库用户查询Azure的SQL数据库V12 AD认证,一些用户无法登录

创建用户

CREATE USER [[email protected]] FROM EXTERNAL PROVIDER; 

分配以下权限

EXEC sp_addrolemember 'db_datareader', '[email protected]'; 
GO 
EXEC sp_addrolemember 'db_datawriter', '[email protected]'; 
GO 
GRANT EXECUTE ON SCHEMA :: dbo TO [[email protected]]; 
GO 
GRANT ALTER ON SCHEMA :: dbo TO [[email protected]]; 

GRANT CREATE TABLE TO [[email protected]]; 
GRANT SELECT,DELETE,UPDATE,INSERT TO [[email protected]]; 
GRANT VIEW ANY COLUMN MASTER KEY DEFINITION to [[email protected]]; 
GRANT VIEW ANY COLUMN ENCRYPTION KEY DEFINITION to [[email protected]]; 

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

+0

什么是无法访问数据库的用户类型?你是否授予所有用户相同的权限? –

+0

是的,所有用户授予相同的权限,用户类型是成员。谁能够访问他们也有用户类型作为成员。 – narendramacha

回答

0

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

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

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

希望这会有所帮助。