我知道 Azure SQL 不支持用于切换数据库的
USE
。但是,一般来说,如果我位于 dbexample
数据库中,那么 USE [dbexample];
会成功运行,不会出现问题。
但是,其他人使用 AAD 凭据向一位同事授予了对 Azure SQL 数据库的访问权限。
在主数据库上,他们可以毫无问题地运行
USE [master];
。
在实际数据库 (
dbexample
) 上,它们无法运行 USE [dbexample]
。为什么他们不能这样做?!?
这是权限问题还是与 AAD 相关的问题?在我也有权访问的其他 Azure SQL 数据库中,我始终具有
db_owner
角色。
我们可以在当前数据库中运行
USE current_database
语句,但无法使用 USE other_database
访问 Azure SQL 数据库中的其他数据库。
主数据库:
例如,如果你在其他数据库或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.
跨数据数据库查询与本地SQL Server不同。无论您使用普通数据库用户还是AAD用户。这些与用户权限无关。
参考此处:https://learn.microsoft.com/en-us/azure/azure-sql/database/elastic-query-overview
使用 USE 后仍然存在此问题,导致错误 40508