Questo documento descrive come esportare gli accessi, gli identificatori di sicurezza (SID) e gli hash delle password di SQL Server da un'istanza Cloud SQL per SQL Server utilizzando la stored procedure sp_help_revlogin.
Quando esegui la migrazione dei database o configuri la sincronizzazione dei database tra le istanze di SQL Server, devi ricreare gli accessi utente nell'istanza di destinazione con SID e hash delle password corrispondenti. In questo modo, gli utenti del database rimangono mappati ai relativi accessi al server e mantengono le proprie autorizzazioni.
Cloud SQL per SQL Server fornisce la stored procedure sp_help_revlogin nel database msdb per generare script Transact-SQL (T-SQL) per ricreare gli accessi degli utenti.
Prima di iniziare
Ruoli obbligatori
Per ottenere l'autorizzazione necessaria per configurare i flag di database, chiedi all'amministratore di concederti i seguenti ruoli IAM nel progetto:
- Amministratore Cloud SQL (
roles/cloudsql.admin) - Cloud SQL Editor (
roles/cloudsql.editor)
Per saperne di più sulla concessione dei ruoli, consulta Gestisci l'accesso a progetti, cartelle e organizzazioni.
Questo ruolo predefinito contiene l'autorizzazione
cloudsql.instances.update
necessaria per
configurare i flag di database.
Potresti anche ottenere questa autorizzazione con ruoli personalizzati o altri ruoli predefiniti.
Autorizzazioni database
Assicurati di disporre dell'accesso al ruolo utente SQL Server sqlserver predefinito.
Attiva il flag di database
Per installare la stored procedure sp_help_revlogin nel database msdb,
attiva il flag di database cloud sql enable sp_help_revlogin nell'istanza.
ConsoleGoogle Cloud
- Nella Google Cloud console, vai alla pagina Istanze Cloud SQL.
- Fai clic sul nome dell'istanza per aprire la pagina Panoramica.
- Fai clic su Modifica.
- Nella sezione Personalizza la tua istanza, espandi Flag.
- Fai clic su Aggiungi flag.
- Seleziona cloud sql enable sp_help_revlogin dall'elenco dei flag disponibili.
- Imposta il valore del flag su on.
- Fai clic su Salva.
gcloud CLI
Attiva il flag utilizzando gcloud CLI:
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=on"
Sostituisci INSTANCE_NAME con il nome dell'istanza Cloud SQL.
Connettersi utilizzando uno strumento client supportato
La stored procedure sp_help_revlogin genera output di script CREATE LOGIN
utilizzando istruzioni T-SQL PRINT (messaggi informativi) anziché
set di risultati tabulari (istruzioni SELECT).
Connettiti all'istanza Cloud SQL utilizzando uno dei seguenti strumenti:
- SQL Server Management Studio (SSMS): connettiti all'istanza, esegui la procedura e visualizza gli script generati nella scheda Messaggi. In alternativa, premi Control+T per impostare la modalità di output dell'esecuzione su Risultati in formato testo prima di eseguire la query.
- Visual Studio Code: connettiti utilizzando l'estensione MSSQL, esegui la procedura e visualizza gli script generati nella scheda Messaggi.
Utilità sqlcmd: connettiti all'istanza e genera gli script direttamente in un file SQL:
sqlcmd -S INSTANCE_IP \ -U USERNAME \ -P PASSWORD -d msdb \ -Q "EXEC dbo.sp_help_revlogin" -o output_logins.sqlSostituisci quanto segue:
INSTANCE_IP: l'indirizzo IP dell'istanza Cloud SQL.USERNAME: il nome utente del database amministrativo (ad esempiosqlserver).PASSWORD: la password dell'utente del database.
Esportare gli accessi utilizzando sp_help_revlogin
Connettiti al database msdb ed esegui la stored procedure sp_help_revlogin.
Per esportare tutti gli accessi dei clienti:
EXEC msdb.dbo.sp_help_revlogin;Per esportare un accesso specifico:
EXEC msdb.dbo.sp_help_revlogin @login_name = 'LOGIN_NAME';Sostituisci
LOGIN_NAMEcon il nome dell'accesso da esportare.
Ricrea gli accessi sull'istanza di destinazione
- Copia le istruzioni
CREATE LOGINgenerate dall'output della query. - Connettiti all'istanza SQL Server di destinazione.
- Esegui le istruzioni generate in una finestra di query o utilizzando
sqlcmd.
Le istruzioni generate creano gli accessi all'istanza di destinazione con i SID originali, i database predefiniti e gli hash delle password. Per ulteriori informazioni sulle considerazioni da fare durante il trasferimento degli accessi tra le istanze, consulta la documentazione di Microsoft su Trasferimento di accessi e password tra istanze di SQL Server.
Limitazioni e accessi esclusi
sp_help_revlogin esclude automaticamente i seguenti tipi di accessi
dall'esportazione:
- Google Cloud service account e account di gestione interni.
- Account di sistema SQL Server interni (accessi con prefisso
##). - Accessi assegnati al ruolo predefinito del server
sysadmin. - Accessi assegnati a ruoli amministrativi del server con limitazioni.
Disattivare il flag di database
Se non hai più bisogno della stored procedure, imposta il flag su off (o rimuovi
il flag dall'istanza):
ConsoleGoogle Cloud
- Nella Google Cloud console, vai alla pagina Istanze Cloud SQL.
- Fai clic sul nome dell'istanza per aprire la pagina Panoramica.
- Fai clic su Modifica.
- Nella sezione Personalizza la tua istanza, espandi Flag.
- Trova cloud sql enable sp_help_revlogin e imposta il valore su off (o fai clic su Elimina per rimuovere il flag).
- Fai clic su Salva.
gcloud CLI
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=off"
Se impostato su off o rimosso, Cloud SQL elimina automaticamente
dbo.sp_help_revlogin dal database msdb.
Passaggi successivi
- Per ulteriori informazioni sugli utenti di SQL Server, consulta la sezione Utenti di SQL Server.
- Per saperne di più sulla configurazione dei flag di database, consulta Configurare i flag di database.
- Per saperne di più sulle stored procedure supportate, consulta la sezione Stored procedure di SQL Server.
- Per ulteriori informazioni sul trasferimento di accessi e password, consulta Trasferimento di accessi e password tra istanze di SQL Server.