SUSER_SNAME (Transact-SQL)
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
Correspond au numéro d'identification de sécurité de la connexion. server_user_sid, qui est facultatif, est 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. 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, retourne NULL.
Type des valeurs retournées
nvarchar(128)
Notes
La fonction SUSER_SNAME peut être utilisée comme une contrainte DEFAULT dans les fonctions ALTER TABLE ou CREATE TABLE. SUSER_SNAME peut être utilisé dans une liste de sélection, dans une clause WHERE, et dans tous les cas 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é.
Lorsqu'il est appelé sans argument, SUSER_SNAME retourne le nom du contexte de sécurité actuel. Lorsqu'il est appelé sans argument à l'intérieur d'un traitement qui a changé de contexte en utilisant EXECUTE AS, SUSER_SNAME retourne le nom du contexte qui a fait l'objet d'un emprunt d'identité. Lorsqu'il est appelé à partir d'un contexte faisant l'objet d'un emprunt d'identité, ORIGINAL_LOGIN retourne le nom du contexte d'origine.
Exemples
A.Utilisation de 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
B.Utilisation de 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.Utilisation de SUSER_SNAME comme contrainte DEFAULT
Cet exemple utilise SUSER_SNAME en tant que contrainte DEFAULT dans une instruction CREATE TABLE.
USE AdventureWorks2012;
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.Appel de SUSER_SNAME en combinaison avec EXECUTE AS
Cet exemple montre le comportement de SUSER_SNAME lorsqu'il est 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
Voir aussi
Référence
sys.server_principals (Transact-SQL)