SQL - 模拟SYSTEM_USER

时间:2012-03-27 13:27:20

标签: 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))

*我确实拥有视图所从的表的权限,但这些视图添加了SYSTEM_USER。*

感谢。

1 个答案:

答案 0 :(得分:4)

查看Execute As Transact SQL

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

Select System_User
Go

Execute As Login = 'SomeOtherLogin'   
   Select System_User
Revert
Go

Select System_User
Go

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