首页 > 解决方案 > 访问 Azure SQL 数据库中的 AD 组

问题描述

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

两个问题

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

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

标签: sql-serverazure-active-directoryazure-sql-database

解决方案


首先,您应该使用您的 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 数据库中创建

在此处输入图像描述

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

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

发生了错误: 在此处输入图像描述

您还可以参考这些博客:

  1. 无法将显示名称中带有“:”的 Azure AD 组添加到 Azure SQL,我是否遗漏了什么?
  2. Active Directory 中计算机、域、站点和 OU 的命名约定

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

希望这可以帮助。


推荐阅读