SUSER_SNAME (Transact-SQL)

S’applique à :SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Point de terminaison analytique SQL dans Microsoft FabricEntrepôt dans Microsoft Fabric

Retourne le nom de connexion associé à un numéro d'identification de sécurité (SID).

Conventions de la syntaxe Transact-SQL

Syntaxe

SUSER_SNAME ( [ server_user_sid ] )

Remarque

Pour afficher la syntaxe Transact-SQL pour SQL Server 2014 (12.x) et versions antérieures, consultez la Documentation sur les versions antérieures.

Arguments

server_user_sid

Numéro facultatif d’identificateur de sécurité de la connexion. server_user_sid est de type varbinary(85). server_user_sid peut être le numéro d’identification de sécurité de n’importe quelle connexion SQL Server ou de n’importe quel utilisateur ou groupe Microsoft Windows. Reportez-vous à la colonne sid dans des affichages catalogue sys.server_principals et sys.sql_logins. Si server_user_sid n’est pas spécifié, les informations sur l’utilisateur actuel sont retournées. Si le paramètre contient le mot NULL, SUSER_SNAME returne NULL.

server_user_sid n’est pas pris en charge sur Azure SQL Database.

Type de retour

nvarchar(128)

Remarques

SUSER_SNAME peut être utilisé comme contrainte DEFAULT dans ALTER TABLE ou CREATE TABLE. SUSER_SNAME peut être utilisé dans une liste de sélection, dans une clause WHERE, et partout où une expression est autorisée. SUSER_SNAME doit toujours être suivi de parenthèses, même si aucun paramètre n’est spécifié.

En cas d’appel sans argument, SUSER_SNAME retourne le nom du contexte de sécurité actuel. En cas d’appel sans argument à l’intérieur d’un lot qui a changé de contexte en utilisant EXECUTE AS, SUSER_SNAME retourne le nom du contexte d’usurpateur d’identité. En cas d’appel à partir d’un contexte dont l’identité a été empruntée, ORIGINAL_LOGIN retourne le SID du contexte original.

Notes relatives à Azure SQL Database

SUSER_SNAME retourne toujours le nom de connexion pour le contexte de sécurité actuel.

L’instruction SUSER_SNAME ne prend pas en charge l’exécution avec un contexte de sécurité représenté par la clause EXECUTE AS.

SUSER_SNAME ne prend pas en charge l’argument server_user_id.

Exemples

R. Utiliser SUSER_SNAME

L'exemple suivant retourne le nom de connexion pour le contexte de sécurité actuel.

SELECT SUSER_SNAME();
GO

B. Utiliser SUSER_SNAME avec un ID de sécurité utilisateur Windows

Cet exemple retourne le nom de connexion associé à un numéro d'identification de sécurité Windows.

SELECT SUSER_SNAME(0x010500000000000515000000a065cf7e784b9b5fe77c87705a2e0000);
GO

C. Utiliser SUSER_SNAME comme contrainte DEFAULT

L’exemple suivant utilise SUSER_SNAME comme contrainte DEFAULT dans une instruction CREATE TABLE.

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. Appeler SUSER_SNAME en combinaison avec EXECUTE AS

Cet exemple montre le comportement de SUSER_SNAME en cas d’appel à partir d’un contexte ayant fait l’objet d’un emprunt d’identité.

SELECT SUSER_SNAME();
GO

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

REVERT;
GO

SELECT SUSER_SNAME();
GO

Voici le résultat.

sa
WanidaBenShoof
sa

Exemples : Azure Synapse Analytics et Analytics Platform System (PDW)

E. Utiliser SUSER_SNAME

Cet exemple retourne le nom de connexion correspondant au numéro d'identification de sécurité portant la valeur 0x01.

SELECT SUSER_SNAME(0x01);
GO

F. Retourner la connexion actuelle

L’exemple suivant renvoie le nom de connexion de la connexion actuelle.

SELECT SUSER_SNAME() AS CurrentLogin;
GO