Partilhar via


Configurar a criptografia de coluna usando o Assistente Always Encrypted

Aplica-se a:SQL ServerBase de Dados SQL do AzureInstância Gerida SQL do Azure

O Assistente Always Encrypted é uma ferramenta poderosa que permite definir a configuração desejada Always Encrypted para colunas de banco de dados selecionadas. Dependendo da configuração atual e da configuração de destino desejada, o assistente pode criptografar uma coluna, descriptografá-la (remover a criptografia) ou criptografá-la novamente (por exemplo, usando uma nova chave de criptografia de coluna ou um tipo de criptografia diferente do tipo atual, configurado para a coluna). Várias colunas podem ser configuradas em uma única execução do assistente.

O assistente permite criptografar colunas com chaves de criptografia de coluna existentes ou você pode optar por gerar uma nova chave de criptografia de coluna ou uma nova chave de criptografia de coluna e uma nova chave mestra de coluna.

Quando seu banco de dados é configurado com um enclave seguro, você pode executar operações criptográficas in-loco, sem mover dados para fora do banco de dados. O assistente remove todas as dependências que bloqueiam a alteração de esquema da coluna a ser encriptada. Realiza uma criptografia no local para cada coluna usando o enclave dentro do mecanismo de banco de dados. Quando a criptografia estiver concluída, o assistente recriará as dependências. Para obter mais informações sobre Always Encrypted com enclaves seguros, consulte Always Encrypted with secure enclaves.

Quando seu banco de dados não estiver configurado* com um enclave seguro, o assistente lhe dará a oportunidade de habilitar um enclave seguro. Se você optar por não habilitar um enclave seguro ou não estiver usando* chaves habilitadas para enclave, o assistente funcionará movendo dados para fora do banco de dados e executando operações criptográficas dentro do processo do SQL Server Management Studio (SSMS). O assistente cria uma nova tabela (ou tabelas) com a configuração de criptografia desejada no banco de dados, carrega todos os dados das tabelas originais, executa as operações criptográficas solicitadas, carrega os dados para a(s) nova(s) tabela(s) e, em seguida, troca a(s) tabela(s) original(is) com a(s) nova(s) tabela(s).

Sugestão

Usar criptografia em-loco usando Always Encrypted com enclaves seguros, se disponível no seu ambiente, pode reduzir substancialmente o tempo e afetar a confiabilidade das operações criptográficas.

Observação

A execução de operações criptográficas pode levar muito tempo. Durante esse tempo, seu banco de dados não está disponível para escrever transações. O PowerShell é uma ferramenta recomendada para operações criptográficas em tabelas maiores. Consulte Configurar criptografia de coluna usando Always Encrypted com PowerShell ou Configurar criptografia de coluna no local com PowerShell.

Permissões

Para executar operações criptográficas usando o assistente, deve ter as permissões VIEW ANY COLUMN MASTER KEY DEFINITION e VIEW ANY COLUMN ENCRYPTION KEY DEFINITION. Você também precisa de permissões de armazenamento de chaves para criar, acessar e usar 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 ou e encontre uma seção relevante para seu armazenamento de chaves.

Abra o Assistente Sempre Criptografado

Você pode iniciar o assistente em três níveis diferentes:

  • Em um nível de banco de dados - se você quiser criptografar várias colunas localizadas em tabelas diferentes.
  • Em um nível de tabela - se você quiser criptografar várias colunas localizadas na mesma tabela.
  • Em um nível de coluna - se você quiser criptografar uma coluna específica.
  1. Conecte-se ao SQL Server com o componente Pesquisador de Objetos do SQL Server Management Studio.

  2. Para encriptar:

    1. Várias colunas localizadas em uma tabela diferente em um banco de dados, clique com o botão direito do mouse no banco de dados, aponte para Tarefas e selecione Criptografar Colunas.
    2. Várias colunas localizadas na mesma tabela, navegue até a tabela, clique com o botão direito do mouse nela e selecione Criptografar colunas.
    3. Uma coluna individual, navegue até a coluna, clique com o botão direito do mouse nela e selecione Criptografar colunas.

Página de Seleção de Colunas

Nesta página, você seleciona as colunas que deseja criptografar, criptografar novamente ou descriptografar e define a configuração de criptografia de destino para as colunas selecionadas.

Para criptografar uma coluna de texto sem formatação (uma coluna que não está criptografada), selecione um tipo de criptografia ( determinística ou randomizado ) e uma chave de criptografia para a coluna.

Para alterar um tipo de criptografia ou girar (alterar) uma chave de criptografia de coluna para uma coluna já criptografada, selecione o tipo de criptografia desejado e a chave.

Se desejar que o assistente encripte ou reencripte uma ou mais colunas usando uma nova chave de encriptação de coluna, escolha uma chave que contenha (Novo) no seu nome. O assistente gerará a chave.

Para desencriptar uma coluna que está atualmente encriptada, selecione Texto simples para o tipo de encriptação.

Observação

Se quiser usar a criptografia no local e estiver a usar chaves existentes, certifique-se de selecionar chaves habilitadas para enclave – anotadas com (habilitadas para enclave).

Observação

O assistente não suporta operações criptográficas em tabelas temporais e na memória. Você pode criar tabelas temporais ou na memória vazias usando Transact-SQL e inserir dados usando seu aplicativo.

Página Configuração da Chave Mestra

Se você selecionou uma chave de criptografia de coluna gerada automaticamente para qualquer coluna na página anterior, nesta página você precisa selecionar uma chave mestra de coluna existente ou configurar uma nova chave mestra de coluna que criptografará a chave de criptografia de coluna.

Ao configurar uma nova chave mestra de coluna, você pode escolher uma chave existente no Repositório de Certificados do Windows ou no Cofre de Chaves do Azure e ter o assistente para criar apenas um objeto de metadados para a chave no banco de dados, ou pode optar por gerar a chave e o objeto de metadados que descreve a chave no banco de dados.

Para usar a encriptação no local, certifique-se de selecionar Permitir cálculos de enclave para uma nova chave mestra de coluna. Marcar essa caixa de seleção só é permitido se o banco de dados estiver configurado com um enclave seguro.

Para obter mais informações sobre como criar e armazenar chaves mestras de coluna no Windows Certificate Store, Azure Key Vault ou outros armazenamentos de chaves, consulte Criar e armazenar chaves mestras de coluna para Always Encrypted ou Gerenciar chaves para Always Encrypted com enclaves seguros.

Sugestão

O assistente permite que você navegue e crie chaves somente no Repositório de Certificados do Windows e no Cofre de Chaves do Azure. Ele também gera automaticamente os nomes das novas chaves e dos objetos de metadados do banco de dados que descrevem as chaves. Se precisar de mais controle sobre como suas chaves são provisionadas (e mais opções para um armazenamento de chaves contendo sua chave mestra de coluna), você pode usar as caixas de diálogo Nova Chave Mestra de Coluna e Nova Chave de Criptografia de Coluna para criar as chaves primeiro e, em seguida, executar o assistente e escolher as chaves que você criou. Consulte Provisionar chaves mestras de coluna com a caixa de diálogo Nova chave mestra de coluna ou Provisionar chaves habilitadas para enclave e Provisionar chaves de criptografia de coluna com a caixa de diálogo Nova chave de criptografia de coluna.

In-Place página Configurações de criptografia

Caso tenha configurado um enclave seguro no seu banco de dados e esteja a usar chaves habilitadas para enclave, esta página permite especificar os parâmetros de atestado do enclave, necessários para a criptografia no local. Se não quiser usar a criptografia no local, desmarque Usar criptografia no local para colunas elegíveis para realizar a criptografia do lado do cliente. Recomendamos que mantenha esta caixa de seleção ativada para que o assistente possa usar a encriptação no local.

Para obter mais informações sobre o atestado de enclave, consulte Configurar atestado para Always Encrypted usando o Atestado do Azure

Pós-encriptação

Limpe o cache de plano para todos os lotes e procedimentos armazenados que acessam a tabela para atualizar as informações de criptografia de parâmetros.

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

Observação

Se você não remover o plano para a consulta afetada do cache, a primeira execução da consulta após a criptografia poderá falhar.

Use ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE ou DBCC FREEPROCCACHE para limpar o cache do plano com cuidado, pois isso pode resultar em degradação temporária do desempenho da consulta. Para minimizar o impacto negativo da limpeza do cache, você pode remover seletivamente os planos apenas para as consultas afetadas.

Chame sp_refresh_parameter_encryption para atualizar os metadados para os parâmetros de cada módulo (procedimento armazenado, função, exibição, gatilho) que persistem em sys.parameters e podem ter sido invalidados pela criptografia das colunas.