Partage via


SUSER_SNAME (Transact-SQL)

S’applique à : point de terminaison d’analytique SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL Analytics dans Microsoft Fabric Warehouse 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