SUSER_SNAME (Transact-SQL)

Van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL Analytics-eindpunt in Microsoft FabricMagazijn in Microsoft FabricSQL-database in Microsoft Fabric

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 varbinair(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 op Azure SQL Database of SQL-databases in Microsoft Fabric.

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 DEFAULT beperking

In het volgende voorbeeld wordt een SUSER_SNAME beperking in een DEFAULT instructie gebruiktCREATE TABLE.

Note

In Azure SQL Database en SQL Database in Microsoft Fabric is de USE instructie niet beschikbaar. Maak in plaats daarvan direct verbinding met de beoogde database en voer de rest van het codevoorbeeld uit.

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. Bel SUSER_SNAME 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

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