授予对 AD 组的访问权限以连接到 Azure SQL Server/数据库时出现问题

Trouble granting access to AD Groups to connect to an Azure SQL Server/Database

提问人:BlakeB9 提问时间:11/17/2023 更新时间:11/17/2023 访问量:28

问:

因此,我创建了一个 Azure SQL Server,并在该服务器下有几个数据库。我的主要目标是允许其他几个 AD(现在是 Entra?)组访问服务器下的数据库。我真的不在乎他们是否有权访问服务器下的所有数据库,但他们实际上只需要一个。

我已经在 master 和他们需要的特定数据库下为这些组创建了用户。

CREATE USER "ADGroup" FROM EXTERNAL PROVIDER;

还通过赋予他们db_reader角色,为他们提供了数据库下的读取访问权限。

我听说,当他们试图连接时,他们无法连接。所以我试过了

Grant connect to ADGroup;

在 master 数据库下。有人告诉我我没有GRANT权限,有点困惑,但是后来发现,服务器级权限显然不是Azure SQL中的东西吗?(此链接的第一段 )

因此,我在特定数据库下授予了连接,并成功执行。我还没有收到他们的回复,但他们能够联系吗?难道服务器不需要知道他们首先被允许连接吗?如果这行不通,我应该怎么做?

azure-active-directory azure-sql 数据库 权限

评论


答:

0赞 Alberto Morillo 11/17/2023 #1

是的,可以使用 Azure 门户创建 Azure AD 组,然后向该组添加成员。在希望该组有权访问的特定数据库上为组创建用户是正确的。

CREATE USER [SQLGroup] FROM EXTERNAL PROVIDER

若要成功执行上述 T-SQL,需要以 Azure Active Directory 管理员用户身份连接到数据库。

现在,请确保为组分配了只读权限,如下所示:

EXEC sp_addrolemember 'db_datareader', 'SQLGroup'

之后,组的任何成员都应该能够连接和查询数据库而不会出现任何问题。可以使用 Azure Data Studio 或 SQL Server Management Studio 进行测试。

有关更多信息,请阅读此文档

评论

0赞 BlakeB9 11/17/2023
不幸的是,这正是我所做的,但服务器不会让他们连接。有没有办法直接连接到数据库?无需通过服务器连接?我从来没有做过,但也许这是可能的。此外,只有一个人告诉我,他们可能做错了什么,但我对此表示怀疑。而且我没有办法自己测试它。
0赞 Alberto Morillo 11/17/2023
请与我们分享用户收到的任何错误。
0赞 BlakeB9 11/18/2023
好吧,由于我没有收到回复,所以我在 master 下创建了另一个 SQL 登录名,并将用户添加到数据库中。授予它读取权限并尝试使用它登录,我收到此错误“'' 服务器主体”test“无法在当前安全上下文下访问此数据库”master”。
0赞 BlakeB9 11/18/2023
更新:单击选项并输入数据库名称后,我能够连接。有没有办法让他们只访问整个服务器,而不是输入特定的数据库?
0赞 Alberto Morillo 11/18/2023
因此,他们试图连接到 master 数据库。这就是问题所在。美妙!