Configurar a criptografia de colunas in-loco com pacote de DAC

Aplica-se a: SQL Server Banco de Dados SQL do Azure

Um pacote de DAC (aplicativo da camada de dados), também conhecido como DACPAC, é uma unidade portátil de implantação de banco de dados do SQL Server que define todos os objetos do SQL Server, incluindo tabelas e colunas dentro das tabelas. Quando você publica um DACPAC em um banco de dados (ao atualizar um banco de dados usando um DACPAC), o esquema do banco de dados de destino é atualizado para corresponder ao esquema no DACPAC. Publique um DACPAC usando o Assistente para Atualizar Aplicativo da Camada de Dados no SQL Server Management Studio, no PowerShell ou no sqlpackage.

Este artigo aborda considerações especiais sobre a atualização de um banco de dados quando o DACPAC e/ou o banco de dados de destino contêm colunas protegidas com o Always Encrypted. Se o esquema de criptografia para uma coluna no DACPAC é diferente do esquema de criptografia para uma coluna existente no banco de dados de destino, a publicação do DACPAC resulta na criptografia, na descriptografia ou na nova criptografia dos dados armazenados na coluna. Confira a tabela a seguir para obter detalhes.

Condição Ação
A coluna está criptografada no DACPAC e não está criptografada no banco de dados. Os dados na coluna serão criptografados.
A coluna não está criptografada no DACPAC e está criptografada no banco de dados. Os dados na coluna serão descriptografados (a criptografia será removida da coluna).
A coluna está criptografada no DACPAC e no banco de dados, mas a coluna no DACPAC usa um tipo de criptografia diferente e/ou uma chave de criptografia de coluna diferente da coluna correspondente no banco de dados. Os dados na coluna serão descriptografados e criptografados novamente para corresponder à configuração de criptografia no DACPAC.

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

Observação

Se estiver usando o SQL Server 2019 (15.x), ou versões posteriores, ou o banco de dados SQL do Azure, e sua instância ou seu banco de dados SQL Server estiver configurado com um enclave seguro, você poderá executar operações criptográficas in-loco, sem mover os dados para fora do banco de dados. Confira Configurar a criptografia de coluna in-loco usando o Always Encrypted com enclaves seguros. Para acionar a criptografia in-loco com um pacote de DAC, o usuário precisa especificar as propriedades EnclaveAttestationProtocol e EnclaveAttestationUrl.

Permissões para publicar um pacote de DAC se o Always Encrypted com enclaves seguros está configurado

Para publicar um pacote de DAC se o Always Encrypted com enclaves seguros está configurado no DACPAC e/ou no banco de dados de destino, talvez você precise ter algumas ou todas as permissões abaixo, dependendo das diferenças entre o esquema no DACPAC e o esquema do banco de dados de destino.

ALTER ANY COLUMN MASTER KEY, ALTER ANY COLUMN ENCRYPTION KEY, VIEW ANY COLUMN MASTER KEY DEFINITION, VIEW ANY COLUMN ENCRYPTION KEY DEFINITION

Se a operação de atualização disparar uma operação de criptografia de dados, você também precisará de permissões de repositório de chaves para acessar e usar sua chave mestra de coluna. Para saber mais sobre as permissões do repositório de chaves, vá até Provisionar chaves habilitadas para enclave e encontre uma seção relevante para seu repositório de chaves.

Próximas etapas

Confira também