分享方式:


SUSER_NAME (Transact-SQL)

適用於:SQL Server Azure SQL 受控執行個體 Azure Synapse Analytics (僅限無伺服器 SQL 集區)Microsoft網狀架構倉儲中的 SQL 分析端點Microsoft Fabric

傳回使用者的登入識別名稱。

Transact-SQL 語法慣例

語法

SUSER_NAME ( [ server_user_id ] )

引數

server_user_id

使用者的登入識別碼。 server_user_id (選擇性) 為 intserver_user_id 可以是有 SQL Server 執行個體連線權限的任何 SQL Server 登入或 Windows 使用者或群組的登入識別碼。 若未指定 server_user_id,就會傳回目前使用者的登入識別名稱。 如果 參數包含 這個字 NULL,則會傳 NULL回 。

傳回類型

nvarchar(128)

備註

SUSER_NAME只會針對在 或 sys.sql_logins 目錄檢視中具有專案之sys.server_principals登入傳回登入名稱。

SUSER_NAME 可用在選取清單、WHERE 子句及任何允許使用運算式的位置中。 請在 SUSER_NAME 之後使用括弧,即使未指定任何參數也一樣。

注意

雖然 Azure SQL Database 支援 SUSER_NAME 函式,但 Azure SQL Database 不支援使用 SUSER_NAME 的 EXECUTE AS。

範例

A. 使用SUSER_NAME

下列範例會傳回登入識別碼是 1 之使用者的登入識別名稱。

SELECT SUSER_NAME(1);

B. 不使用標識碼SUSER_NAME

下列範例不指定識別碼來尋找目前使用者的名稱。

SELECT SUSER_NAME();  
GO  

在 SQL Server 中,以下是Microsoft Entra ID 驗證登入的結果集:

contoso\username  

在 Azure SQL 資料庫 和 Microsoft Fabric 中,以下是已驗證登入Microsoft Entra ID 的結果集:

username@contoso.com