SUSER_NAME()和CURRENT_USER

时间:2018-11-20 18:04:32

标签: sql sql-server tsql

SUSER_NAME()CURRENT_USER有什么区别?

3 个答案:

答案 0 :(得分:1)

它将在数据库中返回用户名。

  

返回用户的登录标识名称。


差异表:

+--------------------------------------+---------------------------------------------------+
|             CURRENT_USER             |            SUSER_NAME([server_user_id])           |
+--------------------------------------+---------------------------------------------------+
| Returns the name of the current user | Returns the login identification name of the user |
| No parameters                        | The paramater is optional                         |
| Return sysname                       | Return nvarchar(128)                              |
| No need to parentheses               | Must call it with parentheses                     |
+--------------------------------------+---------------------------------------------------+

例如,运行此查询并查看结果:

SELECT CURRENT_USER, --or USER_NAME() parameter is optional
       SUSER_NAME(4) --parameter is optional

答案 1 :(得分:1)

CURRENT_USER返回当前安全上下文的名称,并且不包含任何参数。它在功能上等效于USER_NAME()

SUSER_NAME()将返回用户的登录标识名-您可以传递server_user_id来返回用户的详细信息,也可以不传递任何东西来返回有关当前用户的详细信息。

详细信息为herehere

您可以运行以下命令自己查看差异:

SELECT SUSER_NAME();
SELECT CURRENT_USER;

答案 2 :(得分:0)

Current_User将返回数据库中的用户名,而SUSER_NAME()将返回服务器上的用户名。这是两者之间的主要区别。如您所见,Current_user没有参数,而SUSER_NAME()有参数。