我对数据库很陌生,并且对 MSSQL 中的关键字SYSTEM_USER和USER感到困惑。定义说他们在当前上下文中返回用户名。但是我运行的实例为用户返回“dbo”,为系统用户返回“sa”。
有人可以强调两者之间的确切区别吗?
SYSTEM_USER 返回用于登录实例的服务器登录名(SQL Server 登录名或域/Windows 用户名)。USER, CURRENT_USER, USER_NAME(), 或SESSION_USER返回数据库用户名(不是DB_Owner当前正在使用的数据库的用户名)。注意:USER_NAME([user_id])另外可以带一个int-user-id,默认arg为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
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7965 次 |
| 最近记录: |