Migrar logins e grupos SQL
Para uma transição perfeita e segura de seus bancos de dados do SQL Server para o Azure SQL, compreender e gerenciar efetivamente a migração de informações de segurança é essencial.
Decidir quando migrar logons e grupos SQL
Imagine uma grande organização com uma infraestrutura substancial do SQL Server local que atende várias unidades de negócios. Cada unidade de negócios tem seu próprio conjunto de logons SQL, funções de usuário e permissões personalizadas para suas necessidades específicas. A organização decide migrar esses bancos de dados para o Banco de Dados SQL do Azure para usar os benefícios de escalabilidade da nuvem.
Nesse cenário, migrar os logons antecipadamente, antes da migração do banco de dados, pode introduzir complexidade desnecessária na fase de teste.
A migração de logins no final de um projeto de migração de banco de dados pode facilitar o teste, especialmente em cenários complexos. Se os logins forem migrados antecipadamente, isso pode levar a atrasos nos testes devido à evolução dos esquemas de banco de dados. Esperar para migrar logins permite que as configurações de segurança se alinhem com a estrutura final, simplificando o processo de migração, especialmente quando a segurança dependente de tabelas é crucial para a proteção de dados.
| Desafios | Explicação |
|---|---|
| Estrutura de permissões complexa | A migração de logins posteriormente permite adaptar as permissões à medida que a estrutura do banco de dados evolui durante a migração. |
| Atrasos nos testes | A migração antecipada de logins pode tornar os testes mais lentos, complicando a validação de segurança juntamente com as alterações de esquema. |
| Segurança dependente de tabela | Atrasar a migração de login permite ajustar as configurações de segurança para corresponder às estruturas finais do banco de dados se elas forem alteradas durante a migração. |
Em nosso cenário, essa abordagem permite que você se concentre em garantir que as medidas de segurança se alinhem perfeitamente com a estrutura de banco de dados finalizada, reduzindo possíveis complicações e tornando o projeto de migração mais gerenciável.
Migrar logins usando PowerShell ou Azure CLI
Pode usar o Azure Database Migration Service com PowerShell (módulo Az.DataMigration) ou Azure CLI para migrar logins e funções de servidor do seu SQL Server on-premises para o destino Azure SQL. Este processo de migração de login automatiza tarefas manuais, como a sincronização dos logins com os respetivos mapeamentos de utilizador e a replicação das permissões e papéis do servidor.
Atualmente, a migração de login suporta Azure SQL Managed Instance ou SQL Server em alvos de VM Azure.
- Azure SQL Managed Instance - tanto contas Windows como logins SQL.
- SQL Server no Azure VM - apenas os logins SQL.
Se você não tiver concluído a migração do banco de dados e o processo de migração de login for iniciado, a migração de logins e funções de servidor ainda acontecerá, mas os mapeamentos de login/função não serão executados corretamente.
O exemplo seguinte mostra como migrar logins usando o PowerShell:
New-AzDataMigrationLoginsMigration `
-SourceSqlConnectionString "<YourSourceConnectionString>" `
-TargetSqlConnectionString "<YourTargetConnectionString>" `
-ListOfLogin "login1" "login2" `
-AADDomainName "<YourAADDomainName>" # Required for Windows logins
Para Azure CLI, use o az datamigration login-migration comando:
az datamigration login-migration \
--src-sql-connection-str "<YourSourceConnectionString>" \
--tgt-sql-connection-str "<YourTargetConnectionString>" \
--list-of-login "login1" "login2" \
--aad-domain-name "<YourAADDomainName>"
Para um grande número de logins, pode usar o --csv-file-path parâmetro para passar um ficheiro CSV contendo a lista de logins a migrar.
Script MoveLogins
O script MoveLogins auxilia na transferência de informações de logon de SQL Servers locais para o Banco de Dados SQL do Azure ou outras ofertas de PaaS.
O script MoveLogins permite uma pesquisa no Active Directory para os utilizadores, permitindo-lhe obter o seu Nome Principal de Utilizador (UPN).
O script, escrito em PowerShell, gera um script T-SQL que pode ser aplicado ao ambiente SQL de destino para transferir logons, usuários de banco de dados, funções e permissões. Ele não executa os comandos no ambiente de destino. Você precisa revisar cuidadosamente a saída do script gerado antes de aplicá-la ao ambiente de destino.
O script gera resultados diferentes dependendo se você estiver usando o Banco de Dados SQL do Azure ou a Instância Gerenciada SQL do Azure. No Banco de Dados SQL do Azure, você não pode criar logons do Microsoft Entra e usuários de banco de dados relacionados; em vez disso, os usuários do Microsoft Entra são criados no nível do banco de dados. Para a Instância Gerenciada SQL do Azure, ela é semelhante ao SQL Server local com logons no nível do servidor e usuários de banco de dados.
Nota
Sugerimos começar com PowerShell ou Azure CLI para transferir logins. Se você encontrar algum problema com essas ferramentas recomendadas, você pode considerar métodos alternativos, como usar o script MoveLogins.