SQL Server-Anmeldungen exportieren

In diesem Dokument wird beschrieben, wie Sie SQL Server-Anmeldungen, Sicherheits-IDs (SIDs) und Passwort-Hashes aus einer Cloud SQL for SQL Server-Instanz mit der gespeicherten Prozedur sp_help_revlogin exportieren.

Wenn Sie Datenbanken migrieren oder die Datenbanksynchronisierung zwischen SQL Server-Instanzen einrichten, müssen Sie Nutzeranmeldungen in der Zielinstanz mit übereinstimmenden SIDs und Passwort-Hashes neu erstellen. So wird sichergestellt, dass Datenbanknutzer ihren entsprechenden Serveranmeldungen zugeordnet bleiben und ihre Berechtigungen behalten.

Cloud SQL for SQL Server bietet die gespeicherte Prozedur sp_help_revlogin in der Datenbank msdb, um Transact-SQL-Scripts (T-SQL) zum Neuerstellen von Nutzeranmeldungen zu generieren.

Hinweis

Erforderliche Rollen

Bitten Sie Ihren Administrator, Ihnen die folgenden IAM-Rollen für das Projekt zuzuweisen, um die Berechtigung zu erhalten, die Sie zum Konfigurieren von Datenbankflags benötigen:

Weitere Informationen zum Zuweisen von Rollen finden Sie unter Zugriff auf Projekte, Ordner und Organisationen verwalten.

Diese vordefinierte Rolle enthält die Berechtigung cloudsql.instances.update, die zum Konfigurieren von Datenbank-Flags erforderlich ist.

Sie können diese Berechtigung auch mit benutzerdefinierten Rollen oder anderen vordefinierten Rollen erhalten.

Datenbankberechtigungen

Sie müssen Zugriff auf die Standardnutzerrolle sqlserver für SQL Server haben.

Datenbank-Flag aktivieren

Wenn Sie die gespeicherte Prozedur sp_help_revlogin in der Datenbank msdb installieren möchten, aktivieren Sie das Datenbank-Flag cloud sql enable sp_help_revlogin für Ihre Instanz.

Google Cloud Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die entsprechende Übersicht zu öffnen.
  3. Klicken Sie auf Bearbeiten.
  4. Maximieren Sie im Bereich Instanz anpassen den Eintrag Flags.
  5. Klicken Sie auf Flag hinzufügen.
  6. Wählen Sie cloud sql enable sp_help_revlogin aus der Liste der verfügbaren Flags aus.
  7. Setzen Sie den Flag-Wert auf on.
  8. Klicken Sie auf Speichern.

gcloud-CLI

Aktivieren Sie das Flag mit der gcloud CLI:

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

Ersetzen Sie INSTANCE_NAME durch den Namen Ihrer Cloud SQL-Instanz.

Verbindung über ein unterstütztes Clienttool herstellen

Die gespeicherte Prozedur sp_help_revlogin gibt generierte CREATE LOGIN-Skripts mit T-SQL-PRINT-Anweisungen (Informationsmeldungen) anstelle von tabellarischen Ergebnismengen (SELECT-Anweisungen) aus.

her.

Stellen Sie mit einem der folgenden Tools eine Verbindung zu Ihrer Cloud SQL-Instanz her:

  • SQL Server Management Studio (SSMS): Stellen Sie eine Verbindung zur Instanz her, führen Sie die Prozedur aus und sehen Sie sich die generierten Skripts auf dem Tab Meldungen an. Alternativ können Sie auch Strg+T drücken, um den Ausgabemodus für die Ausführung vor der Ausführung der Abfrage auf Ergebnisse in Text umzustellen.
  • Visual Studio Code: Stellen Sie eine Verbindung mit der MSSQL-Erweiterung her, führen Sie die Prozedur aus und sehen Sie sich die generierten Skripts auf dem Tab Messages (Meldungen) an.
  • sqlcmd-Programm: Stellen Sie eine Verbindung zur Instanz her und geben Sie die generierten Skripts direkt in eine SQL-Datei aus:

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

    Ersetzen Sie Folgendes:

    • INSTANCE_IP: die IP-Adresse Ihrer Cloud SQL-Instanz.
    • USERNAME: Ihr administrativer Datenbanknutzername, z. B. sqlserver.
    • PASSWORD: Das Passwort für den Datenbanknutzer.

Anmeldungen mit sp_help_revlogin exportieren

Stellen Sie eine Verbindung zur Datenbank msdb her und führen Sie die gespeicherte Prozedur sp_help_revlogin aus.

  • So exportieren Sie alle Kundenanmeldungen:

    EXEC msdb.dbo.sp_help_revlogin;
    
  • So exportieren Sie eine bestimmte Anmeldung:

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

    Ersetzen Sie LOGIN_NAME durch den Namen des zu exportierenden Logins.

Logins auf der Zielinstanz neu erstellen

  1. Kopieren Sie die generierten CREATE LOGIN-Anweisungen aus der Abfrageausgabe.
  2. Stellen Sie eine Verbindung zur SQL Server-Zielinstanz her.
  3. Führen Sie die generierten Anweisungen in einem Abfragefenster oder mit sqlcmd aus.

Mit den generierten Anweisungen werden die Logins auf der Zielinstanz mit ihren ursprünglichen SIDs, Standarddatenbanken und Kennworthashes erstellt. Weitere Informationen zu Überlegungen beim Übertragen von Anmeldedaten zwischen Instanzen finden Sie in der Microsoft-Dokumentation unter Transferring logins and passwords between instances of SQL Server.

Einschränkungen und ausgeschlossene Anmeldungen

sp_help_revlogin schließt automatisch die folgenden Arten von Log-ins aus dem Export aus:

  • Google Cloud Dienstkonten und interne Verwaltungskonten.
  • Interne SQL Server-Systemkonten (Log-ins mit dem Präfix ##).
  • Anmeldungen, die der festen Serverrolle sysadmin zugewiesen sind.
  • Anmeldungen, die eingeschränkten administrativen Serverrollen zugewiesen sind.

Datenbank-Flag deaktivieren

Wenn Sie die gespeicherte Prozedur nicht mehr benötigen, legen Sie für das Flag den Wert off fest oder entfernen Sie das Flag aus der Instanz:

Google Cloud Console

  1. Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.

    Cloud SQL-Instanzen aufrufen

  2. Klicken Sie auf den Instanznamen, um die entsprechende Übersicht zu öffnen.
  3. Klicken Sie auf Bearbeiten.
  4. Maximieren Sie im Bereich Instanz anpassen den Eintrag Flags.
  5. Suchen Sie nach cloud sql enable sp_help_revlogin und legen Sie den Wert auf off fest (oder klicken Sie auf Löschen , um das Flag zu entfernen).
  6. Klicken Sie auf Speichern.

gcloud-CLI

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

Wenn der Wert auf off gesetzt oder entfernt wird, löscht Cloud SQL dbo.sp_help_revlogin automatisch aus der Datenbank msdb.

Nächste Schritte