SQL 服务器: 是否可以找出发出setuser 'impersonate_username' 的原始用户?

SQL Server : is it possible to find out the original user who issued setuser 'impersonate_username'?

SQL 服务器允许具有足够权限的登录者发出 setuser 命令并冒充另一个用户。例如,我可以作为 user1 连接,如果我有 syadmin 角色,我可以发出 setuser 'user2'。现在我的上下文切换到 user2。

但是有什么方法可以解决这个问题,使用 T-SQL:

  1. 有'impersonation'在进行吗?
  2. 原始用户是谁,即本例中的用户 1?

我认为无论 setuserexecute as 发生什么,函数 ORIGINAL_LOGIN(). Also, I think you'll find sys.sysprocesses.loginame 都保持不变。