SQL Server - 当前用户名称

66

我应该使用哪个来记录用户所做的更新?

  1. SYSTEM_USER,
  2. ORIGINAL_LOGIN(), 或者
  3. SUSER_SNAME()
2个回答

113

SYSTEM_USER 返回当前执行环境,因此这可能会返回模拟的上下文。

ORIGINAL_LOGIN() 返回最初连接到实例的用户身份,因此无论上下文是否被模拟,它都将产生最初登录的原始用户,适用于审计。

SUSER_SNAME() 可以根据SID获取用户名,因此可以使用如下参数调用 SUSER_SNAME([server_user_sid]) 但是SID是可选的,如果不传递该参数,则返回当前用户。


3
SUSER_SNAME()能返回模拟上下文吗? - fordareh

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接