Dela via


SUSER_SNAME (Transact-SQL)

Gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalysplattformssystem (PDW)SQL-analysslutpunkt i Microsoft FabricLager i Microsoft FabricSQL-databas i Förhandsversion av Microsoft Fabric

Returnerar inloggningsnamnet som är associerat med ett säkerhetsidentifieringsnummer (SID).

Transact-SQL syntaxkonventioner

Syntax

SUSER_SNAME ( [ server_user_sid ] )

Arguments

server_user_sid

Det valfria säkerhetsidentifieringsnumret för inloggning. server_user_sid är varbinary(85). server_user_sid kan vara säkerhetsidentifieringsnumret för valfri SQL Server-inloggning eller Microsoft Windows-användare eller grupp. sid Se kolumnen i sys.server_principals eller sys.sql_logins katalogvyerna. Om server_user_sid inte anges returneras information om den aktuella användaren. Om parametern innehåller ordet NULLreturnerar NULL. SUSER_SNAME

server_user_sid stöds inte i Azure SQL Database eller SQL Database i Förhandsversionen av Microsoft Fabric.

Returtyp

nvarchar(128)

Anmärkningar

SUSER_SNAME kan användas som en DEFAULT begränsning i antingen ALTER TABLE eller CREATE TABLE. SUSER_SNAME kan användas i en urvalslista, i en WHERE sats och var som helst där ett uttryck tillåts. SUSER_SNAME måste alltid följas av parenteser, även om ingen parameter har angetts.

När det anropas utan argument SUSER_SNAME returneras namnet på den aktuella säkerhetskontexten. När det anropas utan argument i en batch som har växlat kontext med hjälp EXECUTE ASav returneras SUSER_SNAME namnet på den personifierade kontexten. När det anropas från en personifierad kontext ORIGINAL_LOGIN returneras namnet på den ursprungliga kontexten.

Kommentarer för Azure SQL Database, SQL Database i Fabric

SUSER_SNAME returnerar alltid inloggningsnamnet för den aktuella säkerhetskontexten.

-instruktionen SUSER_SNAME stöder inte körning med hjälp av en personifierad säkerhetskontext via EXECUTE AS.

SUSER_SNAME stöder inte argumentet server_user_id .

Examples

A. Använda SUSER_SNAME

I följande exempel returneras inloggningsnamnet för den aktuella säkerhetskontexten.

SELECT SUSER_SNAME();
GO

B. Använda SUSER_SNAME med ett Windows-användarsäkerhets-ID

I följande exempel returneras inloggningsnamnet som är associerat med ett Windows-säkerhetsidentifieringsnummer.

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

C. Använd SUSER_SNAME som standardvillkor

I följande exempel används SUSER_SNAME som en DEFAULT begränsning i en CREATE TABLE -instruktion.

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. Anropa SUSER_SNAME i kombination med EXECUTE AS

Det här exemplet visar beteendet SUSER_SNAME för när det anropas från en personifierad kontext.

SELECT SUSER_SNAME();
GO

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

REVERT;
GO

SELECT SUSER_SNAME();
GO

Här är resultatet.

sa
WanidaBenShoof
sa

Exempel: Azure Synapse Analytics and Analytics Platform System (PDW)

E. Använda SUSER_SNAME

I följande exempel returneras inloggningsnamnet för säkerhetsidentifieringsnumret med värdet 0x01.

SELECT SUSER_SNAME(0x01);
GO

F. Returnera den aktuella inloggningen

I följande exempel returneras inloggningsnamnet för den aktuella inloggningen.

SELECT SUSER_SNAME() AS CurrentLogin;
GO