使用Azure AD创建Azure SQL数据库登录/用户

时间:2015-07-11 00:03:55

标签: azure visual-studio-2013 azure-sql-database azure-active-directory

我的Azure AD中有两个用户(name@company.com)已通过Azure门户授予Azure服务器的所有者权限。

首先,是否可以创建一个登录/从Azure AD链接以获取这些登录凭据的登录?我已经搜索过,但没有找到具体的答案,尽管我的怀疑是否定的。

其次,我已经为同一个数据库创建了登录/用户,但是,当访问服务器很好时,拒绝访问数据库。我已经授予连接到登录以及为数据库执行sp_addrolemember作为datareader。在仔细检查我的工作时,我引用了几个示例,这些示例显示了我用于Azure登录/用户的相同语法,但仍然拒绝访问。

任何帮助都将不胜感激。

史蒂夫。

代码:

CREATE LOGIN [login_name]
   WITH PASSWORD = N'password'
CREATE USER [user_name]
   FROM LOGIN [login_name]
   WITH DEFAULT_SCHEMA = dbo

GO

GRANT CONNECT TO [user_name]
EXEC sp_addrolemember 'db_datareader', 'user_name'

3 个答案:

答案 0 :(得分:3)

  

首先,是否可以创建从Azure AD链接/提取的登录   这些登录凭据?我搜索过但没找到   具体的答案,虽然我的怀疑是否定的。

没有。在Azure SQL数据库中,您只能使用在Azure SQL数据库中创建的用户和登录 - SQL登录。

  

其次,我为同一个数据库创建了登录/用户,但是,   虽然访问服务器很好,但拒绝访问数据库。   我已经授予连接到登录以及执行   sp_addrolemember作为数据库的每个的datareader。双倍   检查我的工作,我引用了几个显示相同的例子   语法我用于Azure登录/用户,但仍然访问   拒绝。

Logins应在主数据库中创建,而usersgrantssp_addrolemember应在中执行目标数据库的上下文。如果在Master数据库中执行了sp_addrolemember,则您的用户将无权访问目标db。

另外,重要的是,当您尝试使用新登录连接到数据库时(请注意,要使用login而不是user登录数据库),您必须明确选择这个新用户有权访问的数据库!

我猜测你已经在数据库的上下文中执行了create usergrantsp_addrolemember。因此,这些用户现在只能访问master数据库。当您在master的上下文中时,不能向其他数据库授予显式授权。

答案 1 :(得分:1)

答案 2 :(得分:-1)

您无法使用AD用户登录SQL服务器。必须在master数据库中创建登录,并且您需要使用该登录通过连接用户数据库来创建用户和权限授予。但是,SQL DB V12支持包含的用户,您不再需要在主服务器中创建登录。登录可以在用户数据库上下文中执行,如果您为Azure中的数据库设置Geo Replication(使用时间点还原功能还原),这将非常有用。根据我的经验,我建议在Azure数据库中包含用户。