SQL - 模拟 SYSTEM_USER

nop*_*our 1 sql sql-server sql-server-2005 execute

有没有办法在 MS SQL 2005 上模拟或更改 SYSTEM_USER?

我有许多视图(由第三方编写),我无法更改这些视图将 SYSTEM_USER 引用到“ID 表”。

... AND idCode = SUBSTRING(SYSTEM_USER, CHARINDEX('\', SYSTEM_USER) + 1, LEN(SYSTEM_USER))
Run Code Online (Sandbox Code Playgroud)

*我确实有权访问视图从中提取的表,但这些视图添加了 SYSTEM_USER。*

谢谢。

cod*_*ger 5

查看作为Transact SQL执行

如果您拥有正确的权限,您可以作为另一个用户执行任何 T-SQL,然后恢复到原始连接凭据。

Select System_User
Go

Execute As Login = 'SomeOtherLogin'   
   Select System_User
Revert
Go

Select System_User
Go
Run Code Online (Sandbox Code Playgroud)

这将输出第一个和第三个选择的当前连接凭据,并输出第二个选择的指定凭据。