访问Azure SQL数据库中的AD组

时间:2019-09-25 08:02:42

标签: sql-server azure-active-directory azure-sql-database

我有一个客户,他创建了SQL azure数据库,并试图授予对其数据库中本地安全组帐户的访问权限。我们面临的挑战是将内部部署的组命名为“组帐户”,即单词之间有一个空格。该帐户与Azure AD同步。

两个问题

1)如何在SQL Azure数据库上提供对安全组的访问?我知道您会说使用以下语法,但在我的情况下不起作用i)名称ii中的单词之间有空格ii)这不是启用邮件的组,因此在其中没有相应的@ domain.com该组的Azure AD

创建用户[name@domain.com] 来自外部提供商

2 个答案:

答案 0 :(得分:1)

我以前使用过CREATE USER [Group Name] FROM EXTERNAL PROVIDER,它确实有效。

答案 1 :(得分:1)

首先,您应该使用AD管理员帐户登录Azure数据库。

然后运行此查询(与提供的juunas相同)以将本地安全组添加到Azure SQL数据库。

CREATE USER [<Security Group Display Name>] FROM EXTERNAL PROVIDER WITH DEFAULT_SCHEMA = [<schema>];

正如您所说,您的“组帐户”名称中有一个空格,我尝试了相同的操作,它可以正常运行,没有错误。

例如,我用我的AD管理员登录Azure SQL数据库,运行此查询以创建组帐户“ test gp”。

CREATE USER [test gp] FROM EXTERNAL PROVIDER WITH DEFAULT_SCHEMA = [dbo];

运行SELECT * FROM SYS.DATABASE_PRINCIPALS,我们可以看到该组已在Azure SQL数据库中创建

enter image description here

我执行了TSQL:EXEC sp_addrolemember 'db_owner', 'test gp';

似乎一切正常,但是当断开我的SQL数据库并尝试使用组帐户“ test gp@****.com”登录

发生错误: enter image description here

您还可以引用以下博客:

  1. Unable to add Azure AD group with ':' in display name to Azure SQL, am I missing something?
  2. Naming conventions in Active Directory for computers, domains, sites, and OUs

我认为Azure SQL数据库不支持使用带有特殊字符的安全组名来登录数据库,例如空格(空白)。

希望这会有所帮助。