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:
- Cloud SQL-Administrator (
roles/cloudsql.admin) - Cloud SQL Editor (
roles/cloudsql.editor)
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
- Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die entsprechende Übersicht zu öffnen.
- Klicken Sie auf Bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen den Eintrag Flags.
- Klicken Sie auf Flag hinzufügen.
- Wählen Sie cloud sql enable sp_help_revlogin aus der Liste der verfügbaren Flags aus.
- Setzen Sie den Flag-Wert auf on.
- 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.
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.sqlErsetzen 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_NAMEdurch den Namen des zu exportierenden Logins.
Logins auf der Zielinstanz neu erstellen
- Kopieren Sie die generierten
CREATE LOGIN-Anweisungen aus der Abfrageausgabe. - Stellen Sie eine Verbindung zur SQL Server-Zielinstanz her.
- Führen Sie die generierten Anweisungen in einem Abfragefenster oder mit
sqlcmdaus.
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
sysadminzugewiesen 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
- Wechseln Sie in der Google Cloud Console zur Seite Cloud SQL-Instanzen.
- Klicken Sie auf den Instanznamen, um die entsprechende Übersicht zu öffnen.
- Klicken Sie auf Bearbeiten.
- Maximieren Sie im Bereich Instanz anpassen den Eintrag Flags.
- 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).
- 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
- Weitere Informationen zu SQL Server-Nutzern finden Sie unter SQL Server-Nutzer.
- Weitere Informationen zum Konfigurieren von Datenbank-Flags finden Sie unter Datenbank-Flags konfigurieren.
- Weitere Informationen zu unterstützten gespeicherten Prozeduren finden Sie unter Gespeicherte SQL Server-Prozeduren.
- Weitere Informationen zum Übertragen von Logins und Passwörtern finden Sie unter Logins und Passwörter zwischen Instanzen von SQL Server übertragen.