USER_NAME (Transact-SQL)
基于指定的标识号返回数据库用户名。
语法
USER_NAME ( [ id ] )
参数
- id
与数据库用户关联的标识号。id 的数据类型为 int。需要使用括号。
返回类型
nvarchar(256)
注释
省略 id 时,则假定为当前上下文中的当前用户。如果在 EXECUTE AS 语句之后调用 USER_NAME,但不指定 id,则 USER_NAME 将返回模拟用户的名称。如果 Windows 主体通过某组中的成员身份访问数据库,则 USER_NAME 将返回 Windows 主体的名称,而不是该组的名称。
示例
A. 使用 USER_NAME
以下示例将返回用户 ID 为 13 的用户名。
SELECT USER_NAME(13);
GO
B. 使用不指定 ID 的 USER_NAME
以下示例在不指定 ID 的情况下查找当前用户的名称。
SELECT USER_NAME();
GO
下面是为属于 sysadmin 固定服务器角色成员的用户返回的结果集。
------------------------------
dbo
(1 row(s) affected)
C. 在 WHERE 子句中使用 USER_NAME
以下示例将在 sysusers 中查找行,该行的名称与将系统函数 USER_NAME 应用于用户标识号 1 的结果相同。
SELECT name FROM sysusers WHERE name = USER_NAME(1);
GO
下面是结果集。
name
------------------------------
dbo
(1 row(s) affected)
D. 在使用 EXECUTE AS 模拟过程中调用 USER_NAME
以下示例显示模拟过程中 USER_NAME 的行为方式。
SELECT USER_NAME();
GO
EXECUTE AS USER = 'Zelig';
GO
SELECT USER_NAME();
GO
REVERT;
GO
SELECT USER_NAME();
GO
下面是结果集。
DBO
Zelig
DBO