Partilhar via


Configurar a encriptação das colunas usando o Always Encrypted com um pacote DAC

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

Um pacote de aplicação em camada de dados (DAC), também conhecido como DACPAC, é uma unidade portátil de implementação de bases de dados SQL Server que define todos os objetos SQL Server, incluindo tabelas e colunas dentro das tabelas. Quando publicas um DACPAC numa base de dados (quando atualizas uma base de dados usando um DACPAC), o esquema da base de dados de destino é atualizado para corresponder ao esquema do DACPAC. Pode publicar um DACPAC usando o Assistente de Aplicação Upgrade Data-tier no SQL Server Management Studio, PowerShell ou sqlpackage.

Este artigo aborda considerações especiais para atualizar uma base de dados quando o DACPAC e/ou a base de dados de destino contém colunas protegidas com Always Encrypted. Se o esquema de encriptação para uma coluna no DACPAC difere do esquema de encriptação para uma coluna existente na base de dados alvo, a publicação do DACPAC resulta na encriptação, desencriptação ou reencriptação dos dados armazenados na coluna. Consulte a tabela abaixo para mais detalhes.

Condition Ação
A coluna está encriptada no DACPAC e não está encriptada na base de dados. Os dados na coluna serão encriptados.
A coluna não está encriptada no DACPAC e está encriptada na base de dados. Os dados na coluna serão desencriptados (a encriptação será removida para a coluna).
A coluna é encriptada tanto no DACPAC como na base de dados, mas a coluna no DACPAC utiliza um tipo de encriptação diferente e/ou uma chave de encriptação de coluna diferente da coluna correspondente na base de dados. Os dados na coluna serão desencriptados e depois reencriptados para corresponder à configuração de encriptação no DACPAC.

A implementação de um pacote DAC pode também resultar na criação ou remoção de objetos de metadados para chaves mestras de coluna ou chaves de encriptação de coluna para o Always Encrypted.

Considerações sobre desempenho

Para realizar operações criptográficas, uma ferramenta que utiliza para implementar um DACPAC precisa de mover os dados para fora da base de dados. A ferramenta cria uma nova tabela (ou tabelas) com a configuração de encriptação desejada na base de dados, carrega todos os dados das tabelas originais, realiza as operações criptográficas solicitadas, carrega os dados para a(s) nova(s) tabela(s) e depois troca a(s) tabela(s) original(es) com a(s) nova(s) tabela(s). A execução de operações criptográficas pode levar muito tempo. Durante esse tempo, a sua base de dados não está disponível para escrever transações.

Observação

Se estiver a usar SQL Server 2019 (15.x) e a sua instância SQL Server estiver configurada com um enclave seguro, pode executar operações criptográficas no local, sem mover dados para fora da base de dados. Veja Configurar encriptação de colunas no local usando Always Encrypted com enclaves seguros. Note que a encriptação no local não está disponível para implementações de DACPAC.

Permissões para publicar um pacote DAC se o Always Encrypted estiver configurado

Para publicar o pacote DAC, se o Always Encrypted estiver configurado no DACPAC e/e na base de dados de destino, pode ser necessário algumas ou todas as permissões abaixo, dependendo das diferenças entre o esquema do DACPAC e o esquema da base de dados de destino.

ALTERAR QUALQUER CHAVE MESTRA DE COLUNA, ALTERAR QUALQUER CHAVE DE ENCRIPTAÇÃO DE COLUNA, VER QUALQUER DEFINIÇÃO DE CHAVE MESTRA DE COLUNA, VER QUALQUER DEFINIÇÃO DE CHAVE DE ENCRIPTAÇÃO DE COLUNA

Se a operação de atualização desencadear uma operação de encriptação de dados, também precisa de permissões de armazenamento de chaves para aceder e usar a sua chave mestra de coluna. Para obter informações detalhadas sobre permissões de armazenamento de chaves, vá para Criar e armazenar chaves mestras de coluna para Always Encrypted e encontre uma seção relevante para seu armazenamento de chaves.

Próximas Etapas

Ver também