Configurar a criptografia de colunas localmente com um pacote DAC

Aplica-se a:SQL ServerBanco 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. Você pode publicar um DACPAC usando o Assistente de Atualização do 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.

Implantar um pacote DAC também pode resultar na criação ou remoção de objetos de metadados para chaves mestras de coluna ou chaves de criptografia de coluna usadas pelo 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. Consulte Configurar a criptografia de colunas localmente 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 a publicação de um pacote DAC se o Always Encrypted com enclaves seguros estiver 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 obter informações detalhadas sobre as permissões do repositório de chaves, acesse Provisionar chaves habilitadas para uso com enclave e localize a seção relevante para o seu repositório de chaves.

Próximas etapas

Confira também