SUSER_NAME (Transact-SQL)

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

返回用户的登录标识名。

Transact-SQL 语法约定

语法

SUSER_NAME ( [ server_user_id ] )

参数

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