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

Sql server 通过sql数据库中的Azure AD授予对多个数据库的访问权限,sql-server,azure-active-directory,azure-sql-database,Sql Server,Azure Active Directory,Azure Sql Database,说明 我们将Azure SQL数据库与服务器上的多个数据库一起使用。通过创建一个组,比如“DBReader”,可以通过用户的Azure AD登录向单个数据库授予权限。在AAD中,通过azure portal中的服务器设置将组分配给角色“Reader”,然后在连接到数据库时创建一个用户,作为从外部提供程序创建用户[DBReaders],这将允许连接到单个数据库 问题 我们希望授予对所有数据库的读访问权,以便用户可以通过单个连接查看所有数据库,并且不能单独添加它们。通常,您会为此在服务器上创建一个登

说明

我们将Azure SQL数据库与服务器上的多个数据库一起使用。通过创建一个组,比如“DBReader”,可以通过用户的Azure AD登录向单个数据库授予权限。在AAD中,通过azure portal中的服务器设置将组分配给角色“Reader”,然后在连接到数据库时创建一个用户,作为
从外部提供程序创建用户[DBReaders],这将允许连接到单个数据库

问题

我们希望授予对所有数据库的读访问权,以便用户可以通过单个连接查看所有数据库,并且不能单独添加它们。通常,您会为此在服务器上创建一个登录名。但是,预览功能允许
创建登录名。。。来自外部提供程序的
不适用于Azure SQL数据库

问题

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

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

不可以。在托管实例之外,必须将Azure SQL数据库用户添加到每个数据库中,该实例至少需要个Azure SQL数据库用户

一个合适的解决方案是让用户能够同时查看他有权访问的所有数据库


对于Azure SQL数据库,这需要客户端连接到主数据库,然后重新连接到切换数据库。这样做,但其他客户端可能不这样做。

如果您需要此功能(以及其他本地功能),托管实例可能更适合。但授予同一AAD组对多个数据库的访问权限的实际问题是什么?Hi@Nick.McDermaid,问题是我们必须分别为每个数据库添加连接(例如management studio、linqpad),因为如果数据库是每个数据库用户,则必须在连接时指定DB。一个合适的解决方案是让用户能够同时查看他有权限访问的所有数据库。我尝试在该服务器上为主数据库创建一个用户(
create user[Group name]FROM EXTERNAL PROVIDER
),效果很好。但是,我无法将用户分配到
db_datareader
组,因此连接被拒绝。主数据库中没有用户数据,因此不需要添加数据库级权限。确实如此。但是,我仍然必须在主数据库上创建用户。这足以让用户通过AAD登录并实际查看所有数据库。不过,只有那些具有专用读取权限的数据库才是可扩展的。这正是我想要的,谢谢。