Este documento descreve como exportar logins, identificadores de segurança (SIDs) e hashes de senha do SQL Server de uma instância do Cloud SQL para SQL Server usando o procedimento armazenado sp_help_revlogin.
Ao migrar bancos de dados ou configurar a sincronização entre instâncias do SQL Server, é necessário recriar os logins de usuário na instância de destino com SIDs e hashes de senha correspondentes. Isso garante que os usuários do banco de dados permaneçam mapeados para os logins de servidor correspondentes e mantenham as permissões.
O Cloud SQL para SQL Server oferece o procedimento armazenado sp_help_revlogin no banco de dados msdb para gerar scripts Transact-SQL (T-SQL) para recriar logins de usuário.
Antes de começar
Funções exigidas
Para receber a permissão necessária para configurar flags de banco de dados, peça ao administrador para conceder a você os seguintes papéis do IAM no projeto:
- Administrador do Cloud SQL (
roles/cloudsql.admin) - Editor do Cloud SQL (
roles/cloudsql.editor)
Para mais informações sobre a concessão de papéis, consulte Gerenciar o acesso a projetos, pastas e organizações.
Esse papel predefinido contém a permissão cloudsql.instances.update, que é necessária para configurar flags de banco de dados.
Também é possível receber essa permissão com papéis personalizados ou outros papéis predefinidos.
Permissões do banco de dados
Verifique se você tem acesso à função do usuário padrão do SQL Server sqlserver.
Ativar a flag de banco de dados
Para instalar o procedimento armazenado sp_help_revlogin no banco de dados msdb, ative a flag de banco de dados cloud sql enable sp_help_revlogin na instância.
Console doGoogle Cloud
- No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Clique no nome da instância para abrir a página Visão geral correspondente.
- Clique em Editar.
- Na seção Personalizar sua instância, expanda Sinalizações.
- Clique em Adicionar flag.
- Selecione cloud sql enable sp_help_revlogin na lista de flags disponíveis.
- Defina o valor da flag como on.
- Clique em Salvar.
CLI da gcloud
Ative a flag usando a CLI gcloud:
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=on"
Substitua INSTANCE_NAME pelo nome da instância do Cloud SQL.
Conectar usando uma ferramenta de cliente compatível
O procedimento armazenado sp_help_revlogin gera scripts CREATE LOGIN usando instruções T-SQL PRINT (mensagens informativas) em vez de conjuntos de resultados tabulares (instruções SELECT).
Conecte-se à instância do Cloud SQL usando uma das seguintes ferramentas:
- SQL Server Management Studio (SSMS): conecte-se à instância, execute o procedimento e confira os scripts gerados na guia Mensagens. Ou pressione Control+T para mudar o modo de saída de execução para Resultados em texto antes de executar a consulta.
- Visual Studio Code: conecte-se usando a extensão MSSQL, execute o procedimento e confira os scripts gerados na guia Mensagens.
Utilitário sqlcmd: conecte-se à instância e gere os scripts diretamente em um arquivo SQL:
sqlcmd -S INSTANCE_IP \ -U USERNAME \ -P PASSWORD -d msdb \ -Q "EXEC dbo.sp_help_revlogin" -o output_logins.sqlSubstitua:
INSTANCE_IP: o endereço IP da sua instância do Cloud SQL.USERNAME: seu nome de usuário do banco de dados administrativo (comosqlserver).PASSWORD: a senha do usuário do banco de dados.
Exportar logins usando sp_help_revlogin
Conecte-se ao banco de dados msdb e execute o procedimento armazenado sp_help_revlogin.
Para exportar todos os logins de clientes:
EXEC msdb.dbo.sp_help_revlogin;Para exportar um login específico:
EXEC msdb.dbo.sp_help_revlogin @login_name = 'LOGIN_NAME';Substitua
LOGIN_NAMEpelo nome do login a ser exportado.
Recriar logins na instância de destino
- Copie as instruções
CREATE LOGINgeradas da saída da consulta. - Conecte-se à instância de destino do SQL Server.
- Execute as instruções geradas em uma janela de consulta ou usando
sqlcmd.
As instruções geradas criam os logins na instância de destino com os SIDs originais, os bancos de dados padrão e os hashes de senha. Para mais informações sobre considerações ao transferir logins entre instâncias, consulte a documentação da Microsoft sobre Transferência de logins e senhas entre instâncias do SQL Server.
Limitações e logins excluídos
O sp_help_revlogin exclui automaticamente os seguintes tipos de logins da exportação:
- Google Cloud contas de serviço e contas de gerenciamento interno.
- Contas internas do sistema do SQL Server (logins com o prefixo
##). - Logins atribuídos à função de servidor fixo
sysadmin. - Logins atribuídos a funções restritas do servidor administrativo.
Desativar a flag de banco de dados
Se você não precisar mais do procedimento armazenado, defina a flag como off ou remova a flag da instância:
Console doGoogle Cloud
- No console Google Cloud , acesse a página Instâncias do Cloud SQL.
- Clique no nome da instância para abrir a página Visão geral correspondente.
- Clique em Editar.
- Na seção Personalizar sua instância, expanda Sinalizações.
- Encontre cloud sql enable sp_help_revlogin e defina o valor como off ou clique em Excluir para remover a flag.
- Clique em Salvar.
CLI da gcloud
gcloud sql instances patch INSTANCE_NAME \ --database-flags="cloud sql enable sp_help_revlogin=off"
Quando definido como off ou removido, o Cloud SQL descarta automaticamente
dbo.sp_help_revlogin do banco de dados msdb.
A seguir
- Para mais informações sobre usuários do SQL Server, consulte Usuários do SQL Server.
- Para mais informações sobre como configurar flags de banco de dados, consulte Configurar flags de banco de dados.
- Para mais informações sobre os procedimentos armazenados compatíveis, consulte Procedimentos armazenados do SQL Server.
- Para mais informações sobre como transferir logins e senhas, consulte Transferir logins e senhas entre instâncias do SQL Server.