我对数据库很陌生,并且在关键字 SYSTEM_USER 之间感到困惑和 USER在 MSSQL 中。定义说他们在当前上下文中返回用户名。但是我运行的实例为用户返回“dbo”,为系统用户返回“sa”。
有人可以强调两者之间的确切区别吗?
最佳答案
SYSTEM_USER
返回用于登录实例的服务器登录名(SQL Server 登录名或域/Windows 用户名)。 USER
, CURRENT_USER
, USER_NAME()
, 或 SESSION_USER
返回数据库用户名(不是当前使用的数据库的 DB_Owner
)。 注:
USER_NAME([user_id])
还可以使用 int-user-id,默认参数为 1,即:USER_NAME(1)
将与 USER_NAME()
相同.例子:
SELECT SYSTEM_USER --> myDomain\user.name
SELECT USER --> dbo
SELECT CURRENT_USER --> dbo
SELECT USER_NAME() --> dbo
SELECT SESSION_USER --> dbo
关于sql-server - SQL Server 中的SYSTEM_USER 和USER 有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22113653/