Exporter les identifiants de connexion SQL Server

Ce document explique comment exporter les identifiants de connexion, les identifiants de sécurité (SID) et les hachages de mot de passe SQL Server à partir d'une instance Cloud SQL pour SQL Server à l'aide de la procédure stockée sp_help_revlogin.

Lorsque vous migrez des bases de données ou configurez la synchronisation de bases de données entre des instances SQL Server, vous devez recréer les identifiants utilisateur sur l'instance de destination avec des SID et des hachages de mot de passe correspondants. Cela permet de s'assurer que les utilisateurs de la base de données restent associés à leurs identifiants de connexion au serveur correspondants et conservent leurs autorisations.

Cloud SQL pour SQL Server fournit la procédure stockée sp_help_revlogin dans la base de données msdb pour générer des scripts Transact-SQL (T-SQL) permettant de recréer les identifiants utilisateur.

Avant de commencer

Rôles requis

Pour obtenir l'autorisation nécessaire pour configurer les indicateurs de base de données, demandez à votre administrateur de vous accorder les rôles IAM suivants sur le projet :

Pour en savoir plus sur l'attribution de rôles, consultez Gérer l'accès aux projets, aux dossiers et aux organisations.

Ce rôle prédéfini contient l'autorisation cloudsql.instances.update, qui est requise pour configurer les indicateurs de base de données.

Vous pouvez également obtenir cette autorisation avec des rôles personnalisés ou d'autres rôles prédéfinis.

Autorisations d'accès à la base de données

Assurez-vous d'avoir accès au rôle utilisateur SQL Server sqlserver par défaut.

Activer l'option de base de données

Pour installer la procédure stockée sp_help_revlogin dans la base de données msdb, activez l'indicateur de base de données cloud sql enable sp_help_revlogin sur votre instance.

ConsoleGoogle Cloud

  1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur le nom de l'instance pour ouvrir la page Présentation.
  3. Cliquez sur Modifier.
  4. Dans la section Personnaliser votre instance, développez Options.
  5. Cliquez sur Ajouter un flag.
  6. Sélectionnez cloud sql enable sp_help_revlogin dans la liste des indicateurs disponibles.
  7. Définissez la valeur de l'option sur activé.
  8. Cliquez sur Enregistrer.

gcloud CLI

Activez le flag à l'aide de la gcloud CLI :

gcloud sql instances patch INSTANCE_NAME \
    --database-flags="cloud sql enable sp_help_revlogin=on"

Remplacez INSTANCE_NAME par le nom de votre instance Cloud SQL.

Se connecter à l'aide d'un outil client compatible

La procédure stockée sp_help_revlogin génère des scripts CREATE LOGIN à l'aide d'instructions T-SQL PRINT (messages d'information) plutôt que des ensembles de résultats tabulaires (instructions SELECT).

Connectez-vous à votre instance Cloud SQL à l'aide de l'un des outils suivants :

  • SQL Server Management Studio (SSMS) : connectez-vous à l'instance, exécutez la procédure et affichez les scripts générés dans l'onglet Messages. Vous pouvez également appuyer sur Ctrl+T pour passer du mode de sortie d'exécution à Résultats au format texte avant d'exécuter la requête.
  • Visual Studio Code : connectez-vous à l'aide de l'extension MSSQL, exécutez la procédure et affichez les scripts générés dans l'onglet Messages.
  • Utilitaire sqlcmd : connectez-vous à l'instance et générez les scripts directement dans un fichier SQL :

    sqlcmd -S INSTANCE_IP \
        -U USERNAME \
        -P PASSWORD -d msdb \
        -Q "EXEC dbo.sp_help_revlogin" -o output_logins.sql
    

    Remplacez les éléments suivants :

    • INSTANCE_IP : adresse IP de votre instance Cloud SQL.
    • USERNAME : nom d'utilisateur de votre base de données administrative (par exemple, sqlserver).
    • PASSWORD : mot de passe de l'utilisateur de votre base de données.

Exporter des connexions à l'aide de sp_help_revlogin

Connectez-vous à la base de données msdb et exécutez la procédure stockée sp_help_revlogin.

  • Pour exporter tous les identifiants client :

    EXEC msdb.dbo.sp_help_revlogin;
    
  • Pour exporter une connexion spécifique :

    EXEC msdb.dbo.sp_help_revlogin
        @login_name = 'LOGIN_NAME';
    

    Remplacez LOGIN_NAME par le nom de l'identifiant à exporter.

Recréer les identifiants sur l'instance de destination

  1. Copiez les instructions CREATE LOGIN générées à partir du résultat de la requête.
  2. Connectez-vous à votre instance SQL Server de destination.
  3. Exécutez les instructions générées dans une fenêtre de requête ou à l'aide de sqlcmd.

Les instructions générées créent les identifiants sur l'instance de destination avec leurs SID d'origine, leurs bases de données par défaut et leurs hachages de mot de passe. Pour en savoir plus sur les points à prendre en compte lors du transfert de connexions entre instances, consultez la documentation Microsoft sur le transfert de connexions et de mots de passe entre instances de SQL Server.

Limites et identifiants exclus

sp_help_revlogin exclut automatiquement les types de connexions suivants de l'exportation :

  • Google Cloud  comptes de service et comptes de gestion internes.
  • Comptes système SQL Server internes (connexions préfixées par ##).
  • Connexions attribuées au rôle serveur fixe sysadmin.
  • Identifiants attribués à des rôles d'administrateur de serveur restreints.

Désactiver l'indicateur de base de données

Si vous n'avez plus besoin de la procédure stockée, définissez l'indicateur sur off (ou supprimez-le de l'instance) :

ConsoleGoogle Cloud

  1. Dans la console Google Cloud , accédez à la page Instances Cloud SQL.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur le nom de l'instance pour ouvrir la page Présentation.
  3. Cliquez sur Modifier.
  4. Dans la section Personnaliser votre instance, développez Options.
  5. Recherchez cloud sql enable sp_help_revlogin et définissez sa valeur sur off (ou cliquez sur Supprimer pour supprimer l'option).
  6. Cliquez sur Enregistrer.

gcloud CLI

gcloud sql instances patch INSTANCE_NAME \
    --database-flags="cloud sql enable sp_help_revlogin=off"

Lorsque la valeur est définie sur off ou supprimée, Cloud SQL supprime automatiquement dbo.sp_help_revlogin de la base de données msdb.

Étapes suivantes