Delen via


SUSER_SNAME (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)SQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric Preview

Retourneert de aanmeldingsnaam die is gekoppeld aan een beveiligingsidentificatienummer (SID).

Transact-SQL syntaxis-conventies

Syntaxis

SUSER_SNAME ( [ server_user_sid ] )

Arguments

server_user_sid

Het optionele aanmeldingsbeveiligingsidentificatienummer. server_user_sid is varbinary(85). server_user_sid kan het beveiligingsidentificatienummer zijn van elke SQL Server-aanmelding of Microsoft Windows-gebruiker of -groep. Raadpleeg de sid kolom in sys.server_principals of sys.sql_logins catalogusweergaven. Als server_user_sid niet is opgegeven, wordt informatie over de huidige gebruiker geretourneerd. Als de parameter het woord NULLbevat, SUSER_SNAME wordt dit geretourneerd NULL.

server_user_sid wordt niet ondersteund in Azure SQL Database of SQL Database in Microsoft Fabric Preview.

Resultaattype

nvarchar(128)

Opmerkingen

SUSER_SNAME kan worden gebruikt als een DEFAULT beperking in ALTER TABLE of CREATE TABLE. SUSER_SNAME kan worden gebruikt in een selectielijst, in een WHERE component en overal waar een expressie is toegestaan. SUSER_SNAME moet altijd worden gevolgd door haakjes, zelfs als er geen parameter is opgegeven.

Wanneer u zonder argument wordt aangeroepen, SUSER_SNAME wordt de naam van de huidige beveiligingscontext geretourneerd. Wanneer aangeroepen zonder argument in een batch die context heeft gewijzigd met behulp EXECUTE ASvan, SUSER_SNAME retourneert u de naam van de geïmiteerde context. Wanneer deze wordt aangeroepen vanuit een geïmiteerde context, ORIGINAL_LOGIN wordt de naam van de oorspronkelijke context geretourneerd.

Opmerkingen voor Azure SQL Database, SQL Database in Fabric

SUSER_SNAME retourneert altijd de aanmeldingsnaam voor de huidige beveiligingscontext.

De SUSER_SNAME instructie biedt geen ondersteuning voor uitvoering met behulp van een geïmiteerde beveiligingscontext via EXECUTE AS.

SUSER_SNAME biedt geen ondersteuning voor het argument server_user_id .

Voorbeelden

Eén. Gebruik SUSER_SNAME

In het volgende voorbeeld wordt de aanmeldingsnaam voor de huidige beveiligingscontext geretourneerd.

SELECT SUSER_SNAME();
GO

B. Gebruik SUSER_SNAME met een windows-gebruikersbeveiligings-id

In het volgende voorbeeld wordt de aanmeldingsnaam geretourneerd die is gekoppeld aan een Windows-beveiligingsidentificatienummer.

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

C. Gebruik SUSER_SNAME als standaardbeperking

In het volgende voorbeeld wordt een DEFAULT beperking in een CREATE TABLE instructie gebruiktSUSER_SNAME.

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. SUSER_SNAME aanroepen in combinatie met EXECUTE AS

In dit voorbeeld ziet u het gedrag van SUSER_SNAME wanneer deze wordt aangeroepen vanuit een geïmiteerde context.

SELECT SUSER_SNAME();
GO

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

REVERT;
GO

SELECT SUSER_SNAME();
GO

Dit is het resultaat.

sa
WanidaBenShoof
sa

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

E. Gebruik SUSER_SNAME

In het volgende voorbeeld wordt de aanmeldingsnaam voor het beveiligingsidentificatienummer geretourneerd met een waarde van 0x01.

SELECT SUSER_SNAME(0x01);
GO

F. De huidige aanmelding retourneren

In het volgende voorbeeld wordt de aanmeldingsnaam van de huidige aanmelding geretourneerd.

SELECT SUSER_SNAME() AS CurrentLogin;
GO