Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Banco de Dados SQL do Azure
Instância Gerenciada SQL do Azure
Este tutorial ensina-te como começar com o Always Encrypted. Irá mostrar-lhe:
- Como encriptar colunas selecionadas na sua base de dados.
- Como consultar colunas encriptadas.
Observação
Se está à procura de informações sobre Always Encrypted com enclaves seguros, consulte os tutoriais seguintes:
Pré-requisitos
Para este tutorial, precisas de:
- Uma base de dados vazia no Azure SQL Database, Azure SQL Managed Instance ou SQL Server. As instruções abaixo assumem que o nome da base de dados é ContosoHR. Tens de ser proprietário da base de dados (membro da função db_owner ). Para informações sobre como criar uma base de dados, veja Quickstart: Criar uma base de dados única - Azure SQL Database ou Criar uma base de dados no SQL Server.
- Opcional, mas recomendado, especialmente se a tua base de dados estiver no Azure: um cofre de chaves no Azure Key Vault. Para obter informações sobre como criar um cofre de chaves, consulte Guia de início rápido: criar um cofre de chaves usando o portal do Azure.
- Se o cofre de chaves usar o modelo de permissões de política de acesso, verifique se você tem as seguintes permissões de chave no cofre de chaves:
get,list,create,unwrap key,wrap key,verify,sign. Consulte Atribuir uma política de acesso ao Azure Key Vault. - Se estiver a utilizar o modelo de permissões RBAC (controlo de acesso baseado em funções) do Azure, certifique-se de que é membro da função Key Vault Crypto Officer para o seu cofre de chaves. Veja Fornecer acesso a chaves, certificados e segredos do Key Vault com um controle de acesso baseado em função do Azure.
- Se o cofre de chaves usar o modelo de permissões de política de acesso, verifique se você tem as seguintes permissões de chave no cofre de chaves:
- A versão mais recente do SQL Server Management Studio (SSMS) ou a versão mais recente dos módulos SqlServer e Az PowerShell. O módulo PowerShell do Arizona é obrigatório apenas se estiveres a usar o Azure Key Vault.
Passo 1: Criar e preencher o esquema da base de dados
Neste passo, irá criar o esquema de RH e a tabela de Colaboradores . Depois, vais preencher a tabela com alguns dados.
Liga-te à tua base de dados. Para instruções sobre como se ligar a uma base de dados a partir do SSMS, consulte Quickstart: Conecte e consulte uma Base de Dados SQL Azure ou uma Instância Gerida Azure SQL usando SQL Server Management Studio (SSMS) ou Quickstart: Conecte e consulte uma instância SQL Server usando SQL Server Management Studio (SSMS).
Abra uma nova janela de consulta para a base de dados ContosoHR .
Cole e execute as instruções abaixo para criar uma nova tabela, chamada Employees.
CREATE SCHEMA [HR]; GO CREATE TABLE [HR].[Employees] ( [EmployeeID] [int] IDENTITY(1,1) NOT NULL , [SSN] [char](11) NOT NULL , [FirstName] [nvarchar](50) NOT NULL , [LastName] [nvarchar](50) NOT NULL , [Salary] [money] NOT NULL ) ON [PRIMARY];Cole e execute as instruções abaixo para adicionar alguns registos de funcionários à tabela de Colaboradores .
INSERT INTO [HR].[Employees] ( [SSN] , [FirstName] , [LastName] , [Salary] ) VALUES ( '795-73-9838' , N'Catherine' , N'Abel' , $31692 ); INSERT INTO [HR].[Employees] ( [SSN] , [FirstName] , [LastName] , [Salary] ) VALUES ( '990-00-6818' , N'Kim' , N'Abercrombie' , $55415 );
Passo 2: Encriptar colunas
Neste passo, irá provisionar uma chave principal de coluna e uma chave de criptografia de coluna para Always Encrypted. Depois, vais encriptar as colunas SSN e Salário na tabela de Empregados .
O SSMS fornece um assistente que o ajuda a configurar facilmente o Always Encrypted, configurando uma chave mestra de coluna, uma chave de encriptação de colunas, e a encriptação de colunas selecionadas.
No Explorador de Objetos, expanda Bases de Dados>ContosoHR>Tabelas.
Clique com o botão direito na tabela Funcionários e selecione Encriptar Colunas para abrir o assistente Sempre Encriptado.
Selecione Próximo na página de Introdução do assistente.
Na página Seleção de Colunas.
- Selecione as colunas SSN e Salário . Escolha encriptação determinística para a coluna SSN e encriptação aleatória para a coluna Salário . A encriptação determinística suporta consultas, tais como pesquisas de pesquisa por ponto que envolvem comparações de igualdade em colunas encriptadas. A encriptação aleatória não suporta quaisquer cálculos em colunas encriptadas.
- Deixe CEK-Auto1 (Novo) como chave de encriptação da coluna para ambas as colunas. Esta chave ainda não existe e será gerada pelo mago.
- Selecione Avançar.
Na página de Configuração da Chave Mestra , configure uma nova chave mestra de coluna que será gerada pelo assistente. Primeiro, tens de escolher onde queres guardar a tua chave mestra de coluna. O assistente suporta dois tipos principais de repositório de chaves:
- Azure Key Vault - recomendado se a tua base de dados estiver em Azure
- Armazenamento de certificados do Windows
Em geral, o Azure Key Vault é a opção recomendada, especialmente se a sua base de dados estiver no Azure.
Para usar o Azure Key Vault:
- Selecione Azure Key Vault.
- Selecione Iniciar Sessão e conclua o início de sessão no Azure.
- Depois de iniciar sessão, a página mostrará a lista de subscrições e cofres de chaves a que tem acesso. Selecione uma subscrição Azure que contenha o cofre de chaves que quer usar.
- Selecione o cofre das chaves.
- Selecione Avançar.
Para usar a loja de certificados do Windows:
Selecione a loja de certificados do Windows.
Mantenha a seleção padrão de Utilizador Atual – isto instruirá o assistente a gerar um certificado (a sua nova chave mestra de coluna) na loja Utilizador Atual.
Selecione Avançar.
Na página Definições de Encriptação In-Place não é necessária qualquer configuração adicional porque a base de dados não tem um enclave ativado. Selecione Avançar.
Na página de Definições de Execução , perguntam-lhe se quer avançar com a encriptação ou gerar um script PowerShell para ser executado mais tarde. Saia das definições predefinidas e selecione Próximo.
Na página Resumo, o assistente informa o usuário sobre as ações que irá realizar. Verifique se toda a informação está correta e selecione Terminar.
Na página de Resultados, pode seguir o progresso das operações do assistente. Espere até que todas as operações sejam concluídas com sucesso e selecione Fechar.
(Opcional) Explore as alterações que o assistente fez na sua base de dados.
Expanda ContosoHR>Segurança>Chaves Sempre Encriptadas para explorar os objetos de metadados da chave mestra da coluna e da cifra de coluna que o assistente criou.
Também pode executar as consultas abaixo contra as vistas do catálogo do sistema que contêm metadados chave.
SELECT * FROM sys.column_master_keys; SELECT * FROM sys.column_encryption_keys SELECT * FROM sys.column_encryption_key_valuesNo Explorador de Objetos, clique com o botão direito na tabela Empregados e selecione Tabela de Scripts como>CRIAR para>a Janela do Editor de Novas Consultas. Isto abrirá uma nova janela de consulta com a instrução CREATE TABLE para a tabela Employees . Note a cláusula ENCRYPTED WITH que aparece nas definições das colunas SSN e Salário .
Também pode executar a consulta abaixo contra sys.columns para recuperar metadados de encriptação ao nível das colunas para as duas colunas encriptadas.
SELECT [name] , [encryption_type] , [encryption_type_desc] , [encryption_algorithm_name] , [column_encryption_key_id] FROM sys.columns WHERE [encryption_type] IS NOT NULL;
Passo 3: Consultar colunas encriptadas
Liga-te à tua base de dados com o modo Sempre Encriptado desativado para a tua ligação.
- Abra uma nova janela de consulta.
- Clique com o botão direito em qualquer lugar da janela de consulta e selecione Ligação>Alterar Ligação. Isto abrirá o diálogo Ligar ao Motor de Base de Dados .
- Selecione Opções <<. Isto mostrará separadores adicionais no diálogo Ligar ao Motor de Base de Dados.
- Selecione o separador Sempre Encriptado.
- Certifique-se de que Ativar Sempre Encriptado (encriptação por coluna) não está selecionado.
- Selecione Conectar.
Insira e execute a seguinte consulta. A consulta deve devolver dados binários encriptados.
SELECT [SSN], [Salary] FROM [HR].[Employees]
Liga-te à tua base de dados com o modo Sempre Encriptado ativado para a tua ligação.
- Clique com o botão direito em qualquer lugar da janela de consulta e selecione Ligação>Alterar Ligação. Isto abrirá o diálogo Ligar ao Motor de Base de Dados .
- Selecione Opções <<. Isto mostrará separadores adicionais no diálogo Ligar ao Motor de Base de Dados.
- Selecione o separador Sempre Encriptado.
- Selecione Ativar Sempre Encriptado (encriptação de colunas).
- Selecione Conectar.
Repete a mesma consulta. Como está conectado com o Always Encrypted ativado para a sua ligação à base de dados, o driver cliente no SSMS tentará decifrar os dados armazenados em ambas as colunas cifradas. Se usar o Azure Key Vault, pode ser solicitado a iniciar sessão no Azure.
Ativar a parametrização para Always Encrypted. Esta funcionalidade permite executar consultas que filtram dados por colunas encriptadas (ou inserir dados em colunas encriptadas).
- Selecione Consultar no menu principal do SSMS.
- Selecionar Opções de Consulta....
- Navegar para Execução>Avançada.
- Certifica-te de que a opção Enable Parameterization for Always Encrypted está assinalada.
- Selecione OK.
Cole e execute a consulta abaixo, que filtra os dados pela coluna SSN encriptada. A consulta deve devolver uma linha contendo valores de texto simples.
DECLARE @SSN [char](11) = '795-73-9838' SELECT [SSN], [Salary] FROM [HR].[Employees] WHERE [SSN] = @SSNOpcionalmente, se estiver a usar o Azure Key Vault configurado com o modelo de permissões da política de acesso, siga os passos abaixo para ver o que acontece quando um utilizador tenta recuperar dados de texto simples de colunas encriptadas sem ter acesso à chave mestra da coluna que protege os dados.
- Remova a permissão de chave
unwrappara você mesmo na política de acesso do seu cofre de chaves. Para obter mais informações, consulte Atribuir uma política de acesso ao Key Vault. - Como o controlador do cliente no SQL Server Management Studio (SSMS) armazena em cache as chaves de encriptação das colunas adquiridas de um cofre de chaves por 2 horas, é recomendável fechar o SSMS e abri-lo novamente. Isto garante que a cache de chaves está vazia.
- Liga-te à tua base de dados com o modo Sempre Encriptado ativado para a tua ligação.
- Insira e execute a seguinte consulta. A consulta deve falhar com a mensagem de erro a indicar que não tem a permissão necessária
unwrap.
SELECT [SSN], [Salary] FROM [HR].[Employees]- Remova a permissão de chave
Próximos passos
Consulte também
- Documentação sempre encriptada
- Sempre encriptado com documentação de enclaves seguros
- Provisionar chaves sempre encriptadas usando SQL Server Management Studio
- Configurar Sempre Encriptado usando PowerShell
- Wizard Always Encrypted
- Colunas de consulta usando Always Encrypted com o SQL Server Management Studio