Azure SQL 数据库上的 USE 语句权限

问题描述 投票:0回答:2

我知道 Azure SQL 不支持用于切换数据库的

USE
。但是,一般来说,如果我位于
dbexample
数据库中,那么
USE [dbexample];
会成功运行,不会出现问题。

但是,其他人使用 AAD 凭据向一位同事授予了对 Azure SQL 数据库的访问权限。

在主数据库上,他们可以毫无问题地运行

USE [master];

在实际数据库 (

dbexample
) 上,它们无法运行
USE [dbexample]
。为什么他们不能这样做?!?

这是权限问题还是与 AAD 相关的问题?在我也有权访问的其他 Azure SQL 数据库中,我始终具有

db_owner
角色。

sql-server azure-active-directory azure-sql-database
2个回答
1
投票

我们可以在当前数据库中运行

USE current_database
语句,但无法使用
USE other_database
访问 Azure SQL 数据库中的其他数据库。

主数据库:

enter image description here

用户数据库: enter image description here

例如,如果你在其他数据库或master DB中运行

use dbexample
,你总是会得到这个错误:

Msg 40508, Level 16, State 1, Line 3
USE statement is not supported to switch between databases. Use a new connection to connect to a different database.

enter image description here

跨数据数据库查询与本地SQL Server不同。无论您使用普通数据库用户还是AAD用户。这些与用户权限无关。

参考此处:https://learn.microsoft.com/en-us/azure/azure-sql/database/elastic-query-overview


0
投票

使用 USE 后仍然存在此问题,导致错误 40508

© www.soinside.com 2019 - 2024. All rights reserved.