Exportar logins do SQL Server

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:

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

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Clique em Editar.
  4. Na seção Personalizar sua instância, expanda Sinalizações.
  5. Clique em Adicionar flag.
  6. Selecione cloud sql enable sp_help_revlogin na lista de flags disponíveis.
  7. Defina o valor da flag como on.
  8. 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.sql
    

    Substitua:

    • INSTANCE_IP: o endereço IP da sua instância do Cloud SQL.
    • USERNAME: seu nome de usuário do banco de dados administrativo (como sqlserver).
    • 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_NAME pelo nome do login a ser exportado.

Recriar logins na instância de destino

  1. Copie as instruções CREATE LOGIN geradas da saída da consulta.
  2. Conecte-se à instância de destino do SQL Server.
  3. 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

  1. No console Google Cloud , acesse a página Instâncias do Cloud SQL.

    Acesse "Instâncias do Cloud SQL"

  2. Clique no nome da instância para abrir a página Visão geral correspondente.
  3. Clique em Editar.
  4. Na seção Personalizar sua instância, expanda Sinalizações.
  5. Encontre cloud sql enable sp_help_revlogin e defina o valor como off ou clique em Excluir para remover a flag.
  6. 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