SUSER_NAME (Transact-SQL)

适用于:SQL ServerAzure SQL 托管实例Azure Synapse Analytics(仅限无服务器 SQL 池)Microsoft Fabric 中的 SQL 分析终结点Microsoft Fabric 中的仓库

返回用户的登录标识名。

Transact-SQL 语法约定

语法

SUSER_NAME ( [ server_user_id ] )

注意

若要查看 SQL Server 2014 (12.x) 及更早版本的 Transact-SQL 语法,请参阅早期版本文档

自变量

server_user_id

用户的登录标识号。 可选参数 server_user_id 的数据类型为 int。server_user_id 可以是允许连接到 SQL Server 实例的任何 SQL Server 登录名或 Windows 用户或用户组的登录标识号。 如果未指定 server_user_id,则返回当前用户的登录标识名。 如果参数包含 NULL 一词,它将返回 NULL

返回类型

nvarchar(128)

注解

SUSER_NAME 只返回在 sys.server_principalssys.sql_logins 目录视图中有登录条目的登录名。

SUSER_NAME 可以在 SELECT 列表、WHERE 子句和任何允许使用表达式的地方使用。 即使未指定任何参数,也请在 SUSER_NAME 后使用括号。

注意

尽管 Azure SQL 数据库支持 SUSER_NAME 函数,但 Azure SQL 数据库不支持使用 SUSER_NAME 的 EXECUTE AS。

示例

A. 使用 SUSER_NAME

以下示例将返回登录标识号为 1 的用户的登录标识名。

SELECT SUSER_NAME(1);

B. 使用不指定 ID 的 SUSER_NAME

以下示例在不指定 ID 的情况下查找当前用户的名称。

SELECT SUSER_NAME();  
GO  

在 SQL Server 中,以下是经过身份验证的 Microsoft Entra ID 登录的结果集:

contoso\username  

在 Azure SQL 数据库和 Microsoft Fabric 中,以下是经过身份验证的 Microsoft Entra ID 登录的结果集:

username@contoso.com