通过SQL数据库中的Azure AD授予对多个数据库的访问权限

时间:2019-06-25 12:26:49

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

说明

我们将Azure SQL数据库与服务器上的多个数据库一起使用。通过创建一个组,例如“ DBReader”,可以通过用户的Azure AD登录名授予对单个数据库的权限。在AAD中,并通过azure门户中服务器的设置将组分配给角色“读者”,然后在以CREATE USER [DBReaders] FROM EXTERNAL PROVIDER的身份连接到数据库时创建一个 user ,这将允许连接到单个数据库。

问题

我们想授予对 all 数据库的读取权限,以便用户看到具有单个连接的所有数据库,并且不能单独添加它们。通常,您将在服务器上为此创建一个登录名。但是,允许CREATE LOGIN ... FROM EXTERNAL PROVIDER的预览功能https://docs.microsoft.com/en-gb/sql/t-sql/statements/create-login-transact-sql?view=azuresqldb-mi-current对于Azure SQL数据库不可用。

问题

我们有没有想到过通过AAD组简单地授予对所有数据库的访问权限的任何方式?

1 个答案:

答案 0 :(得分:1)

  

我们有没有想到过通过AAD组简单地授予对所有数据库的访问权限的任何方式?

不。在托管实例外部(最低要求为4 vCores)之外,必须将Azure SQL数据库用户添加到每个数据库中。

  

一种合适的解决方案将涉及使用户能够立即查看他有权访问的所有数据库

对于Azure SQL数据库,这要求客户端连接到Master,然后重新连接以切换数据库。 SQL Server Management Studio会这样做,但其他客户端可能不会。