SUSER_SNAME (Transact-SQL)
S’applique à : SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) SQL analytics endpoint in Microsoft Fabric Warehouse in 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 ] )
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