sp_addlogin (Transact-SQL)

S’applique à :SQL Server

Crée une connexion SQL Server qui permet à un utilisateur de se connecter à une instance de SQL Server à l’aide de l’authentification SQL Server.

Important

Cette fonctionnalité sera supprimée dans une version future de SQL Server. Évitez d'utiliser cette fonctionnalité dans de nouveaux travaux de développement, et prévoyez de modifier les applications qui utilisent actuellement cette fonctionnalité. Utilisez CREATE LOGIN à la place.

Important

Lorsque c'est possible, utilisez l'authentification Windows.

Conventions de la syntaxe Transact-SQL

Syntaxe

sp_addlogin
    [ @loginame = ] N'loginame'
    [ , [ @passwd = ] N'passwd' ]
    [ , [ @defdb = ] N'defdb' ]
    [ , [ @deflanguage = ] N'deflanguage' ]
    [ , [ @sid = ] sid ]
    [ , [ @encryptopt = ] 'encryptopt' ]
[ ; ]

Arguments

[ @loginame = ] N’loginame'

Nom de la connexion. @loginame est sysname, sans valeur par défaut.

[ @passwd = ] N’passwd'

Mot de passe de connexion. @passwd est sysname, avec la valeur par défaut NULL.

Important

N'utilisez pas de mot de passe vide. Utilisez un mot de passe fort.

[ @defdb = ] N’defdb'

Base de données par défaut de la connexion (base de données à laquelle la connexion est d’abord connectée après la connexion). @defdb est sysname, avec la valeur par défaut master.

[ @deflanguage = ] N’deflanguage'

Langue par défaut de la connexion. @deflanguage est sysname, avec la valeur par défaut NULL. Si @deflanguage n’est pas spécifié, la @deflanguage par défaut de la nouvelle connexion est définie sur la langue par défaut actuelle du serveur.

[ @sid = ] sid

Numéro d’identification de sécurité (SID). @sid est varbinary(16), avec la valeur par défaut NULL. Si @sid est NULL, le système génère un SID pour la nouvelle connexion. Malgré l’utilisation d’un type de données varbinary , les valeurs autres que celles ne NULL doivent pas être exactement de 16 octets de longueur et ne peuvent pas déjà exister. La spécification de @sid est utile, par exemple, lorsque vous créez des scripts ou déplacez des connexions SQL Server d’un serveur vers un autre et que vous souhaitez que les connexions aient le même SID sur différents serveurs.

[ @encryptopt = ] 'encryptopt'

Spécifie si le mot de passe est transmis en texte clair ou sous forme de hachage du mot de passe en texte clair. Aucun chiffrement n’a lieu. Le mot « chiffrement » est utilisé dans cette description à des fins de compatibilité ascendante. Si un mot de passe de texte clair est transmis, il est haché. Le hachage est stocké. @encryptopt est varchar(20) et peut être l’une des valeurs suivantes.

Valeur Description
NULL (valeur par défaut) Le mot de passe est transmis en clair.
skip_encryption Le mot de passe est déjà haché. La Moteur de base de données doit stocker la valeur sans la rechappre.
skip_encryption_old Le mot de passe fourni a été haché par une version antérieure de SQL Server. La Moteur de base de données doit stocker la valeur sans la rechappre. Option fournie pour des mises à niveau uniquement.

Valeurs des codes de retour

0 (réussite) ou 1 (échec).

Notes

Les connexions SQL Server peuvent contenir de 1 à 128 caractères, y compris des lettres, des symboles et des chiffres. Les connexions ne peuvent pas contenir de barre oblique inverse (\) ; être un nom de connexion réservé, par exemple sa ou public, ou déjà existant ; ou être NULL ou une chaîne vide.

Si le nom d’une base de données par défaut est fourni, vous pouvez vous connecter à la base de données spécifiée sans exécuter l’instruction USE . Toutefois, vous ne pouvez pas utiliser la base de données par défaut tant que vous n’avez pas accès à cette base de données par le propriétaire de la base de données (en utilisant sp_adduser, sp_addrolemember) ou sp_addrole.

Le numéro SID est un GUID qui identifie de manière unique la connexion dans le serveur.

La modification de la langue par défaut du serveur ne modifie pas la langue par défaut des connexions existantes. Pour modifier la langue par défaut du serveur, utilisez sp_configure.

L’utilisation skip_encryption pour supprimer le hachage de mot de passe est utile si le mot de passe est déjà haché lorsque la connexion est ajoutée à SQL Server. Si le mot de passe a été haché par une version antérieure de SQL Server, utilisez skip_encryption_old.

sp_addlogin ne peut pas être exécuté dans une transaction définie par l’utilisateur.

Le tableau suivant présente plusieurs procédures stockées utilisées avec sp_addlogin.

Procédure stockée Description
sp_grantlogin Ajoute un utilisateur ou un groupe Windows.
sp_password Modifie le mot de passe d'un utilisateur.
sp_defaultdb Modifie la base de données par défaut d'un utilisateur.
sp_defaultlanguage Modifie la langue par défaut d'un utilisateur.

Autorisations

Nécessite l'autorisation ALTER ANY LOGIN.

Exemples

R. Créer une connexion SQL Server

L’exemple suivant crée une connexion SQL Server pour l’utilisateur Victoria, avec un mot de passe de B1r12-36, sans spécifier de base de données par défaut.

EXEC sp_addlogin 'Victoria', 'B1r12-36';
GO

B. Créer une connexion SQL Server avec une base de données par défaut

L’exemple suivant crée une connexion SQL Server pour l’utilisateurAlbert, avec un mot de passe et une base de B5432-3M6 données par défaut .corporate

EXEC sp_addlogin 'Albert', 'B5432-3M6', 'corporate';
GO

C. Créer une connexion SQL Server qui a une autre langue par défaut

L’exemple suivant crée une connexion SQL Server pour l’utilisateurTzTodorov, avec un mot de passe , 709hLKH7chjfwvune base de données par défaut et AdventureWorks2022une langue par défaut .Bulgarian

EXEC sp_addlogin 'TzTodorov', '709hLKH7chjfwv', 'AdventureWorks2022', N'български'

D. Créer une connexion SQL Server avec un SID spécifique

L’exemple suivant crée une connexion SQL Server pour l’utilisateur Michael, avec un mot de passe de B548bmM%f6, une base de données par défaut , AdventureWorks2022une langue par défaut et us_englishun SID de 0x0123456789ABCDEF0123456789ABCDEF.

EXEC sp_addlogin 'Michael', 'B548bmM%f6', 'AdventureWorks2022', 'us_english', 0x0123456789ABCDEF0123456789ABCDEF