sp_change_users_login |
Change la connexion utilisateur |
---|---|
SQL Server |
Syntaxe
sp_change_users_login [ @Action = ] 'action' [ , [ @UserNamePattern = ] 'user' ] [ , [ @LoginName = ] 'login' ] [ , [ @Password = ] 'password' ] [;] |
Paramètres
Nom | Description | |
---|---|---|
[ @Action= ] 'action' | Ce paramètre permet de décrire l'action à effectuer par la procédure. L'action est de type de données varchar(10). Le paramètre action peut avoir l'une des valeurs suivantes : | |
Valeur | Description | |
Auto_Fix | Cette valeur permet de lier une entrée d'utilisateur dans la vue du catalogue système sys.database_principals dans la base de données actuelle à une connexion SQL Server du même nom. Si un login portant le même nom n'existe pas, un nouveau sera créé. Examinez le résultat de l'instruction Auto_Fix pour confirmer que le lien correct est en fait créé. Évitez d'utiliser Auto_Fix dans des situations sensibles pour la sécurité. Lorsque vous utilisez Auto_Fix, vous devez spécifier l'utilisateur et le mot de passe si la connexion n'existe pas déjà, sinon vous devez spécifier l'utilisateur mais le mot de passe sera ignoré. la connexion doit être NULL. user doit être un utilisateur valide dans la base de données actuelle. La connexion ne peut pas être associée à un autre utilisateur. | |
Report | Cette valeur permet de répertorier les utilisateurs et les identificateurs de sécurité (SID) correspondants dans la base de données actuelle n'étant pas liés à aucune connexion. Le user, le login et le password doivent être NULL ou non spécifiés. Pour remplacer l'option de rapport par une requête utilisant les tables système, comparez les entrées de sys.server_prinicpals avec les entrées de sys.database_principals. | |
Update_One | Cette valeur permet lier l'utilisateur spécifié dans la base de données actuelle à une connexion SQL Server existante. Le user et login doivent être spécifiés. Le password doit être NULL ou non spécifié. | |
[ @UserNamePattern= ] 'user' | Ce paramètre permet d'indiquer le nom d'un utilisateur dans la base de données courante. Le user est sysname, avec une valeur par défaut de NULL. | |
[ @LoginName= ] 'login' | Ce paramètre permet d'indiquer le nom d'une connexion SQL Server. login est sysname, avec une valeur par défaut de NULL. | |
[ @Password= ] 'password' | Ce paramètre permet d'indiquer le mot de passe attribué à une nouvelle connexion SQL Server étant créée en spécifiant Auto_Fix. Si une connexion correspondante existe déjà, l'utilisateur et la connexion sont cartographiés et le mot de passe est ignoré. Si une connexion correspondante n'existe pas, sp_change_users_login crée une nouvelle connexion SQL Server et attribue password comme mot de passe pour la nouvelle connexion. le mot de passe est sysname et ne doit pas être NULL. |
Description
Cette Stored Procedure permet de cartographier un utilisateur de base de données existant à une connexion SQL Server.
Remarques
- Utilisez sp_change_users_login pour lier un utilisateur de base de données dans la base de données actuelle avec une connexion SQL Server. Si la connexion d'un utilisateur a changé, utilisez sp_change_users_login pour lier l'utilisateur à la nouvelle connexion sans perdre les autorisations de l'utilisateur. La nouvelle connexion ne peut pas être sa et l'utilisateur ne peut pas être dbo (Database Owner), guest (invité) ou un utilisateur INFORMATION_SCHEMA.
- Le sp_change_users_login ne peut pas être utilisé pour cartographier des utilisateurs de base de données sur des principaux, des certificats ou des clefs asymétriques de niveau Windows.
- Le sp_change_users_login ne peut pas être utilisé avec une connexion SQL Server créée à partir d'un principal Windows ou avec un utilisateur créé à l'aide de CREATE USER WITHOUT LOGIN.
- Le sp_change_users_login ne peut pas être exécuté dans une transaction définie par l'utilisateur.
- Nécessite l'appartenance au rôle de base de données fixe db_owner. Seuls les membres du rôle de serveur fixe sysadmin peuvent spécifier l'option Auto_Fix.
Exemples
L'exemple suivant produit un rapport sur les utilisateurs de la base de données actuelle et leurs identificateurs de sécurité (SID) :
- EXEC sp_change_users_login 'Report';
Dans l'exemple suivant, un utilisateur de base de données est associé à une nouvelle connexion SQL Server. L'utilisateur de base de données userRedGateA, étant d'abord cartographié à une autre connexion, est recartographié sur la connexion userRedGateB :
- EXEC sp_change_users_login 'update_one','userRedGateA','userRedGateB';
Dernière mise à jour : Dimanche, le 29 Août 2021