Migrar dados para ou de colunas usando Always Encrypted com o Assistente de Importação e Exportação do SQL Server

Aplica-se a:SQL ServerBanco de Dados SQL do AzureInstância Gerenciada de SQL do Azure

O Assistente de Importação e Exportação do SQL Server é uma ferramenta que permite copiar dados de uma origem para um destino. Este documento descreve como usar o Assistente de Importação e Exportação do SQL Server se uma origem e/ou um destino é um banco de dados do SQL Server que contém colunas protegidas com o Always Encrypted.

Cenários de migração

Com o Assistente de Importação e Exportação do SQL Server, implemente os cenários a seguir para migrar dados bidirecionalmente em colunas criptografadas.

Criptografar dados de texto não criptografado na migração

Se a fonte de dados contém dados de texto não criptografado e o destino é um banco de dados do SQL Server que contém colunas criptografadas, use o Assistente de Importação e Exportação do SQL Server para recuperar os dados de texto não criptografado da origem, criptografá-los e copiar os dados criptografados (texto cifrado) para as colunas criptografadas no banco de dados de destino. Para esse cenário de migração, a fonte de dados pode ser qualquer armazenamento de dados compatível com o Assistente de Importação e Exportação do SQL Server. Por exemplo, um arquivo, um banco de dados do SQL Server ou um banco de dados em outro sistema de banco de dados.

Para garantir que o Assistente de Importação e Exportação do SQL Server possa criptografar dados, você precisará habilitar o Always Encrypted para a conexão de banco de dados de destino e ter acesso às chaves que protegem os dados nas colunas do banco de dados de destino. Para obter mais informações, confira Habilitar e desabilitar o Always Encrypted para uma conexão de banco de dados e Permissões para criptografar ou descriptografar dados durante a migração.

Descriptografar dados criptografados na migração

Se você estiver migrando dados armazenados em colunas de banco de dados criptografadas em um banco de dados do SQL Server, configure o Assistente de Importação e Exportação do SQL Server para descriptografar os dados e copiar os dados descriptografados (texto não criptografado) para um destino, que pode ser qualquer armazenamento de dados compatível com o Assistente de Importação e Exportação do SQL Server, por exemplo, um arquivo, um banco de dados do SQL Server ou um banco de dados em outro sistema de banco de dados.

Para garantir que o Assistente de Importação e Exportação do SQL Server possa descriptografar dados, você precisará habilitar o Always Encrypted para a conexão de banco de dados de origem e ter acesso às chaves que protegem os dados nas colunas do banco de dados de origem. Para obter mais informações, confira Habilitar e desabilitar o Always Encrypted para uma conexão de banco de dados e Permissões para criptografar ou descriptografar dados durante a migração.

Criptografar dados novamente na migração

Se você estiver copiando os dados de colunas criptografadas em um banco de dados de origem do SQL Server para colunas criptografadas no mesmo ou em outro banco de dados do SQL Server, configure o Assistente de Importação e Exportação do SQL Server para descriptografar os dados depois de recuperá-los da origem e criptografá-los novamente antes de inseri-los nas colunas criptografadas no banco de dados de destino. Use esse método se o esquema das colunas de destino (por exemplo, tipos de dados de coluna, tipos de criptografia e chaves de criptografia de coluna) for diferente do esquema das colunas de origem.

Para garantir que o Assistente de Importação e Exportação do SQL Server possa criptografar e descriptografar dados, você precisará habilitar o Always Encrypted para a conexão de banco de dados de origem e a conexão de banco de dados de destino e ter acesso às chaves que protegem os dados nas colunas de banco de dados de origem e de destino. Para obter mais informações, confira Habilitar e desabilitar o Always Encrypted para uma conexão de banco de dados e Permissões para criptografar ou descriptografar dados durante a migração.

Manter os dados criptografados durante a migração

Se você estiver copiando os dados de colunas criptografadas em um banco de dados de origem do SQL Server para colunas criptografadas no mesmo ou em outro banco de dados do SQL Server e as colunas de destino usarem exatamente o esquema (incluindo os mesmos tipos de dados, tipos de criptografia e chaves de criptografia de coluna) das colunas de origem, configure o Assistente de Importação e Exportação do SQL Server para recuperar o texto cifrado das colunas de origem e inserir os dados criptografados (texto cifrado) na coluna criptografada no banco de dados de destino do SQL Server.

Para esse cenário, use qualquer provedor de dados que dê suporte ao SQL Server para se conectar ao banco de dados de origem ou destino do SQL Server. Se você estiver usando um provedor que dê suporte ao Always Encrypted para se conectar ao banco de dados de destino, verifique se o Always Encrypted está desabilitado para a conexão de banco de dados. Para obter mais informações, confira Habilitar e desabilitar o Always Encrypted para uma conexão de banco de dados.

Você também precisa garantir que a entidade de segurança do banco de dados (usuário) usada pelo Assistente de Importação e Exportação do SQL Server para se conectar ao banco de dados de destino está configurada com a opção ALLOW_ENCRYPTED_VALUE_MODIFICATIONS definida como ON. Essa opção suprime as verificações de metadados criptográficos no servidor em operações de cópia em massa, o que permite ao assistente inserir em massa os dados criptografados no banco de dados de destino sem descriptografá-los. Para obter mais informações, confira Carregar em massa dados criptografados em colunas protegidas pelo Always Encrypted.

Habilitar e desabilitar o Always Encrypted para uma conexão de banco de dados

Se o cenário de migração exige que o Assistente de Importação e Exportação do SQL Server possa criptografar e/ou descriptografar dados, você precisa configurar a conexão de banco de dados de origem do SQL Server e/ou a conexão de banco de dados de destino do SQL Server usando um provedor de dados que dê suporte ao Always Encrypted. Você também precisa habilitar o Always Encrypted para a conexão de banco de dados de origem e/ou destino.

Use qualquer provedor de dados para uma conexão se não precisar que o assistente criptografe ou descriptografe dados nessa conexão.

Os provedores de dados a seguir no Assistente de Importação e Exportação do SQL Server dão suporte ao Always Encrypted.

Permissões para criptografar ou descriptografar dados durante a migração

Para criptografar ou descriptografar os dados armazenados em um banco de dados de origem ou destino do SQL Server, você precisará das permissões VIEW ANY COLUMN MASTER KEY DEFINITION e VIEW ANY COLUMN ENCRYPTION KEY DEFINITION no banco de dados de origem. Você também precisa de permissões do repositório de chaves para acessar e usar sua chave mestra de coluna. Saiba mais sobre as permissões do repositório de chaves necessárias para operações de gerenciamento de chaves, vá até Criar e armazenar chaves mestras de coluna para Always Encrypted e encontre uma seção relevante para o seu repositório de chaves.

Próximas etapas

Confira também