SUSER_SNAME (Transact-SQL)
適用於:SQL Server Azure SQL 資料庫 Azure SQL 受控執行個體 Azure Synapse Analytics Analytics Platform System (PDW) Microsoft Fabric 的 SQL 端點分析 Microsoft Fabric 的倉儲
傳回與安全性識別碼 (SID) 相關聯的登入名稱。
語法
SUSER_SNAME ( [ server_user_sid ] )
引數
server_user_sid
選用的登入安全性識別碼。 server_user_sid 為 varbinary(85)。 server_user_sid 可以是任何 SQL Server 登入或 Microsoft Windows 使用者或群組的安全性識別碼。 sid
請參閱 或sys.sql_logins
目錄檢視中的數據sys.server_principals
行。 如果未指定 server_user_sid,則會傳回目前使用者的相關資訊。 如果 參數包含 這個字 NULL
, SUSER_SNAME
則會傳 NULL
回 。
Azure SQL Database 上不支援 server_user_sid
傳回類型
nvarchar(128)
備註
SUSER_SNAME
可以用作 ALTER TABLE
或 CREATE TABLE
中的條件約束。 SUSER_SNAME
可用在選取清單、WHERE 子句及任何允許使用運算式的位置中。 SUSER_SNAME
後面一律必須接著括號,即使未指定任何參數,也是如此。
當呼叫 SUSER_SNAME
時,如果未設定引數,其會傳回目前安全性內容的名稱。 在批次中呼叫時,不使用 已使用 EXECUTE AS
切換內容的自變數時, SUSER_SNAME
會傳回模擬內容的名稱。 從模擬內容呼叫時,ORIGINAL_LOGIN
會傳回原始內容的名稱。
Azure SQL Database 備註
SUSER_SNAME
一律傳回目前安全性內容的登入名稱。
SUSER_SNAME
陳述式不支援透過 EXECUTE AS 使用模擬安全性內容執行。
SUSER_SNAME
不支援 server_user_id 引數。
範例
A. 使用 SUSER_SNAME
下列範例會傳回目前安全性內容的登入名稱。
SELECT SUSER_SNAME();
GO
B. 搭配 Windows 使用者安全性識別碼使用 SUSER_SNAME
下列範例會傳回與 Windows 安全性識別碼相關聯的登入名稱。
SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO
C. 使用 SUSER_SNAME 做為 DEFAULT 條件約束
下列範例會使用 SUSER_SNAME
做為 CREATE TABLE
陳述式中的 DEFAULT 條件約束。
USE AdventureWorks2022;
GO
CREATE TABLE sname_example (
login_sname SYSNAME DEFAULT SUSER_SNAME(),
employee_id UNIQUEIDENTIFIER DEFAULT NEWID(),
login_date DATETIME DEFAULT GETDATE()
);
GO
INSERT sname_example DEFAULT
VALUES;
GO
D. 結合 EXECUTE AS 呼叫 SUSER_SNAME
從模擬內容中呼叫時,這個範例會顯示 SUSER_SNAME
的行為。
SELECT SUSER_SNAME();
GO
EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();
REVERT;
GO
SELECT SUSER_SNAME();
GO
以下是結果。
sa
WanidaBenShoof
sa
範例:Azure Synapse Analytics 和 Analytics Platform System (PDW)
E. 使用 SUSER_SNAME
下列範例會傳回安全性識別碼值為 0x01
的登入名稱。
SELECT SUSER_SNAME(0x01);
GO
F. 傳回目前登入
下列範例會傳回目前登入的登入名稱。
SELECT SUSER_SNAME() AS CurrentLogin;
GO