特别是在 Synapse Serverless 中,如果重要的话。
作为 SQL Server 登录的登录名执行工作正常
EXECUTE AS USER = 'NameOfSQLServerLogin'
SELECT *
FROM [dbo].dimclient
REVERT;
但是当登录是 Active Directory 安全组时,我不清楚如何执行上述操作。
假设安全组名称是[DataWarehouse - ReadOnlyAll]。
尝试过这些组合:
EXECUTE AS LOGIN = '[DataWarehouse - ReadOnlyAll]'
EXECUTE AS LOGIN = 'DataWarehouse - ReadOnlyAll'
EXECUTE AS USER = '[DataWarehouse - ReadOnlyAll]'
EXECUTE AS USER = 'DataWarehouse - ReadOnlyAll'
总是同样的错误:
“消息 15517,第 16 级,状态 1,第 57 行 无法作为数据库主体执行,因为主体“DataWarehouse - ReadOnlyAll”不存在,无法模拟此类主体,或者您没有权限。”
在前提下,我可以使用域名\用户名的格式
执行为登录 = 'OurDomain\First.Last'
这可以在本地运行。在 Synapse 中则不然。无论是在本地还是在 Synapse 中,直接引用安全组名称都不起作用。
我显然错过了一些基本的东西......