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:
- 有'impersonation'在进行吗?
- 原始用户是谁,即本例中的用户 1?
我认为无论 setuser
或 execute as
发生什么,函数 ORIGINAL_LOGIN(). Also, I think you'll find sys.sysprocesses.loginame 都保持不变。
SQL 服务器允许具有足够权限的登录者发出 setuser
命令并冒充另一个用户。例如,我可以作为 user1 连接,如果我有 syadmin 角色,我可以发出 setuser 'user2'
。现在我的上下文切换到 user2。
但是有什么方法可以解决这个问题,使用 T-SQL:
- 有'impersonation'在进行吗?
- 原始用户是谁,即本例中的用户 1?
我认为无论 setuser
或 execute as
发生什么,函数 ORIGINAL_LOGIN(). Also, I think you'll find sys.sysprocesses.loginame 都保持不变。