如何在模拟程序中获取调用者的用户ID?

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

如果你用“execute as xxx”编写一个过程,是否可以在过程中以某种方式检索调用该过程的原始用户?

sql-server sql-server-2008 sql-server-2008-r2
2个回答
4
投票

ORIGINAL_LOGIN()
是否返回您想要的信息?

http://technet.microsoft.com/en-us/library/ms189492.aspx


0
投票

根据文档,您使用 EXECUTE AS CALLER:

作为调用者执行;
选择用户名(); -- 显示执行上下文设置为模块的调用者 SqlUser2。
恢复;

https://learn.microsoft.com/en-us/sql/t-sql/statements/execute-as-clause-transact-sql?view=sql-server-ver16

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