SQL Server - 当前用户名

Sre*_*har 42 t-sql sql-server

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

  1. SYSTEM_USER, 要么
  2. ORIGINAL_LOGIN(), 要么
  3. SUSER_SNAME()

Ray*_*und 81

SYSTEM_USER 返回当前正在执行的上下文,因此可以返回模拟的上下文

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

SUSER_SNAME()如果您想通过SID获取用户名,则使用此方法,因此SUSER_SNAME可以使用类似参数调用,SUSER_SNAME([server_user_sid])但如果您未传递返回当前用户的参数,则SID是可选的.

  • SUSER_SNAME()可以返回模拟的上下文吗? (2认同)