Sdílet prostřednictvím


SUSER_SNAME (Transact-SQL)

Platí pro:SQL ServerAzure SQL DatabaseSpravovaná instance Azure SQLAzure Synapse AnalyticsPdW (Analytics Platform System)Koncový bod analýzy SQL v Microsoft FabricSklad v Microsoft FabricDatabáze SQL v Microsoft Fabric Preview

Vrátí přihlašovací jméno přidružené k identifikačnímu číslu zabezpečení (SID).

Transact-SQL konvence syntaxe

Syntaxe

SUSER_SNAME ( [ server_user_sid ] )

Arguments

server_user_sid

Volitelné identifikační číslo zabezpečení přihlášení. server_user_sid je varbinary(85). server_user_sid může být identifikační číslo zabezpečení libovolného přihlášení k SQL Serveru nebo uživatele nebo skupiny systému Microsoft Windows. Odkazujte na sid sloupec v sys.server_principals zobrazeních katalogu nebo sys.sql_logins na sloupec. Pokud není zadaný server_user_sid , vrátí se informace o aktuálním uživateli. Pokud parametr obsahuje slovo NULL, SUSER_SNAME vrátí .NULL

server_user_sid se nepodporuje ve službě Azure SQL Database ani v databázi SQL v Microsoft Fabric Preview.

Návratový typ

nvarchar(128)

Poznámky

SUSER_SNAME lze použít jako DEFAULT omezení v obou ALTER TABLE nebo CREATE TABLE. SUSER_SNAME lze použít v seznamu select, v WHERE klauzuli a kdekoli je povolený výraz. SUSER_SNAME musí vždy následovat závorky, i když není zadán žádný parametr.

Při zavolání bez argumentu SUSER_SNAME vrátí název aktuálního kontextu zabezpečení. Při volání bez argumentu v dávce, která přepnula kontext pomocí , EXECUTE ASSUSER_SNAME vrátí název zosobněného kontextu. Při zavolání z zosobněného kontextu ORIGINAL_LOGIN vrátí název původního kontextu.

Poznámky ke službě Azure SQL Database, databázi SQL v prostředcích infrastruktury

SUSER_SNAME vždy vrátí přihlašovací jméno pro aktuální kontext zabezpečení.

Příkaz SUSER_SNAME nepodporuje provádění pomocí zosobněného kontextu zabezpečení prostřednictvím EXECUTE AS.

SUSER_SNAME nepodporuje argument server_user_id .

Examples

A. Použití SUSER_SNAME

Následující příklad vrátí přihlašovací jméno pro aktuální kontext zabezpečení.

SELECT SUSER_SNAME();
GO

B. Použití SUSER_SNAME s ID zabezpečení uživatele Windows

Následující příklad vrátí přihlašovací jméno přidružené k identifikačnímu číslu zabezpečení systému Windows.

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

C. Použití SUSER_SNAME jako výchozího omezení

Následující příklad používá SUSER_SNAME jako DEFAULT omezení v CREATE TABLE příkazu.

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. Volání SUSER_SNAME v kombinaci s execute AS

Tento příklad ukazuje chování SUSER_SNAME při zavolání z zosobněného kontextu.

SELECT SUSER_SNAME();
GO

EXECUTE AS LOGIN = 'WanidaBenShoof';
SELECT SUSER_SNAME();

REVERT;
GO

SELECT SUSER_SNAME();
GO

Tady je výsledek.

sa
WanidaBenShoof
sa

Příklady: Azure Synapse Analytics a Analytický platformový systém (PDW)

E. Použití SUSER_SNAME

Následující příklad vrátí přihlašovací jméno pro identifikační číslo zabezpečení s hodnotou 0x01.

SELECT SUSER_SNAME(0x01);
GO

F. Vrácení aktuálního přihlášení

Následující příklad vrátí přihlašovací jméno aktuálního přihlášení.

SELECT SUSER_SNAME() AS CurrentLogin;
GO