Note
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier les répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de changer de répertoire.
S’applique à :SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de données SQL dans Microsoft Fabric
Renvoie le numéro d'identification de sécurité (SID) correspondant au nom de connexion spécifié.
Conventions de la syntaxe Transact-SQL
Syntaxe
SUSER_SID ( [ 'login' ] [ , Param2 ] )
Arguments
« * connexion * »
S’applique à : SQL Server 2008 (10.0.x) et versions ultérieures
Nom de connexion de l’utilisateur.
login est de type sysname. Cet argument facultatif login peut correspondre à une connexion SQL Server ou à un groupe ou utilisateur Microsoft Windows. Si login n’est pas spécifié, des informations sur le contexte de sécurité actuel sont retournées. Si le paramètre contient NULL, SUSER_SID retourne NULL.
Param2
S’applique à : SQL Server 2012 (11.x) et versions ultérieures
Indique si le nom de connexion est validé. Param2 est de type int et est facultatif. Lorsque Param2 a la valeur 0, le nom de connexion n’est pas validé. Lorsque Param2 n’est pas spécifié avec la valeur 0, une vérification est effectuée pour s’assurer que le nom de connexion Windows est exactement le même que le nom de connexion stocké dans SQL Server.
Types de retour
varbinary(85)
Remarques
SUSER_SID peut être utilisé comme contrainte dans l’une DEFAULT ou l’autre ALTER TABLE ou CREATE TABLE.
SUSER_SID peut être utilisé dans une liste de sélections, dans une WHERE clause et n’importe où une expression est autorisée.
SUSER_SID doit toujours être suivi de parenthèses, même si aucun paramètre n’est spécifié.
Lorsqu’il est appelé sans argument, SUSER_SID retourne le SID du contexte de sécurité actuel. Lorsqu’il est appelé sans argument dans un lot qui a changé de contexte à l’aide EXECUTE ASde , SUSER_SID retourne le SID du contexte emprunt d’identité. Lorsqu’il est appelé à partir d’un contexte emprunt d’identité, SUSER_SID(ORIGINAL_LOGIN()) retourne le SID du contexte d’origine.
Lorsque le classement SQL Server et le classement Windows sont différents, SUSER_SID peut échouer lorsque SQL Server et Windows stockent la connexion dans un autre format. Par exemple, si l’ordinateur TestComputer Windows dispose de la connexion User et que SQL Server stocke la connexion en tant que TESTCOMPUTER\User, la recherche de la connexion TestComputer\User peut échouer à résoudre correctement le nom de connexion. Pour ignorer cette validation du nom de connexion, utilisez Param2. Les classements différents sont souvent une cause de l’erreur SQL Server 15401 : Windows NT user or group '%s' not found. Check the name again.
Remarques pour Azure SQL Database, base de données SQL dans Fabric
SUSER_SID retourne toujours le SID de connexion pour le contexte de sécurité actuel. Utilisez sys.database_principals pour obtenir le SID d’une autre connexion.
L’instruction SUSER_SID ne prend pas en charge l’exécution à l’aide d’un contexte de sécurité emprunt d’identité via EXECUTE AS.
Exemples
R. Utiliser SUSER_SID
L’exemple suivant retourne le numéro d’identification de sécurité (SID) du contexte de sécurité actuel.
SELECT SUSER_SID();
B. Utiliser SUSER_SID avec une connexion spécifique
S’applique à : SQL Server 2012 (11.x) et versions ultérieures
L’exemple suivant retourne le numéro d’identification de sécurité du compte de connexion SQL Server sa.
SELECT SUSER_SID('sa');
GO
C. Utiliser SUSER_SID avec un nom d’utilisateur Windows
S’applique à : SQL Server 2012 (11.x) et versions ultérieures
L'exemple suivant renvoie le numéro d'identification de sécurité du London\Workstation1 de l'utilisateur Windows.
SELECT SUSER_SID('London\Workstation1');
GO
D. Utiliser SUSER_SID comme contrainte DEFAULT
L'exemple suivant utilise SUSER_SID comme contrainte DEFAULT dans une instruction CREATE TABLE.
USE AdventureWorks2022;
GO
CREATE TABLE sid_example
(
login_sid VARBINARY(85) DEFAULT SUSER_SID(),
login_name VARCHAR(30) DEFAULT SYSTEM_USER,
login_dept VARCHAR(10) DEFAULT 'SALES',
login_date DATETIME DEFAULT GETDATE()
);
GO
INSERT sid_example DEFAULT VALUES;
GO
E. Comparer le nom de connexion Windows au nom de connexion stocké dans SQL Server
S’applique à : SQL Server 2012 (11.x) et versions ultérieures
L’exemple suivant montre comment utiliser Param2 pour obtenir le SID de Windows et utilise ce SID comme entrée de la fonction SUSER_SNAME. Il indique la connexion au format dans lequel elle est stockée dans Windows (TestComputer\User), et retourne la connexion au format dans lequel elle est stockée dans SQL Server (TESTCOMPUTER\User).
SELECT SUSER_SNAME(SUSER_SID('TestComputer\User', 0));