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 tópico descreve como criar chaves simétricas idênticas em dois servidores diferentes no SQL Server usando o Transact-SQL. Para desencriptar o texto cifrado, precisa da chave que foi usada para o encriptar. Quando a criptografia e a descriptografia ocorrem em um único banco de dados, a chave é armazenada no banco de dados e está disponível, dependendo das permissões, para criptografia e descriptografia. Mas quando a criptografia e a descriptografia ocorrem em bancos de dados separados ou em servidores separados, a chave armazenada em um banco de dados não está disponível para uso no segundo banco de dados.
Antes de começar
Limitações e restrições
Quando uma chave simétrica é criada, a chave simétrica deve ser criptografada usando pelo menos uma das seguintes opções: certificado, senha, chave simétrica, chave assimétrica ou PROVIDER. A chave pode ter mais de uma criptografia de cada tipo. Em outras palavras, uma única chave simétrica pode ser criptografada usando vários certificados, senhas, chaves simétricas e chaves assimétricas ao mesmo tempo.
Quando uma chave simétrica é criptografada com uma senha em vez da chave pública da chave mestra do banco de dados, o algoritmo de criptografia TRIPLE DES é usado. Devido a isso, as chaves que são criadas com um algoritmo de encriptação forte, como AES, são protegidas por um algoritmo mais fraco.
Segurança
Permissões
Requer a permissão ALTER ANY SYMMETRIC KEY no banco de dados. Se AUTHORIZATION estiver especificado, será necessária a permissão IMPERSONATE no utilizador da base de dados ou a permissão ALTER na função de aplicação. Se a criptografia for feita por certificado ou por chave assimétrica, requer a permissão VIEW DEFINITION no certificado ou na chave assimétrica. Somente logons do Windows, logons do SQL Server e funções de aplicativo podem possuir chaves simétricas. Grupos e funções não podem possuir chaves simétricas.
Usando Transact-SQL
Para criar chaves simétricas idênticas em dois servidores diferentes
No Pesquisador de Objetos , conecte-se a uma instância do Mecanismo de Banco de Dados.
Na barra Padrão, clique em Nova Consulta.
Crie uma chave executando as seguintes instruções CREATE MASTER KEY, CREATE CERTIFICATE e CREATE SYMMETRIC KEY. Substitua
<password>por uma senha válida.CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; GO CREATE CERTIFICATE [cert_keyProtection] WITH SUBJECT = 'Key Protection'; GO CREATE SYMMETRIC KEY [key_DataShare] WITH KEY_SOURCE = 'My key generation bits. This is a shared secret!', ALGORITHM = AES_256, IDENTITY_VALUE = 'Key Identity generation bits. Also a shared secret' ENCRYPTION BY CERTIFICATE [cert_keyProtection]; GOConecte-se a uma instância de servidor separada, abra uma Janela de Consulta diferente e execute as instruções SQL acima para criar a mesma chave no segundo servidor.
Teste as chaves executando primeiro a instrução OPEN SYMMETRIC KEY e a instrução SELECT abaixo no primeiro servidor.
OPEN SYMMETRIC KEY [key_DataShare] DECRYPTION BY CERTIFICATE cert_keyProtection; GO SELECT encryptbykey(key_guid('key_DataShare'), 'MyData' ) GO -- For example, the output might look like this: 0x2152F8DA8A500A9EDC2FAE26D15C302DA70D25563DAE7D5D1102E3056CE9EF95CA3E7289F7F4D0523ED0376B155FE9C3No segundo servidor, cole o resultado da instrução SELECT anterior no código a seguir como o valor de
@blobe execute o código a seguir para verificar se a chave duplicada pode descriptografar o texto cifrado.OPEN SYMMETRIC KEY [key_DataShare] DECRYPTION BY CERTIFICATE cert_keyProtection; GO DECLARE @blob varbinary(8000); SELECT CONVERT(varchar(8000), decryptbykey(@blob)); GOFeche a chave simétrica em ambos os servidores.
CLOSE SYMMETRIC KEY [key_DataShare]; GO
Alterações de criptografia no SQL Server 2017 CU2
O SQL Server 2016 usa o algoritmo de hash SHA1 para seu trabalho de criptografia. A partir do SQL Server 2017, o SHA2 é usado. Isso significa que etapas adicionais podem ser necessárias para que sua instalação do SQL Server 2017 descriptografe itens que foram criptografados pelo SQL Server 2016. Aqui estão os passos extras:
- Verifique se o SQL Server 2017 está atualizado para, pelo menos, a Atualização Cumulativa 2 (CU2).
- Consulte Atualização cumulativa 2 para SQL Server 2017 para obter detalhes importantes.
- Depois de instalar o CU2, ative o sinalizador de rastreamento 4631 no SQL Server 2017:
DBCC TRACEON(4631, -1);- O sinalizador de rastreamento 4631 é novo no SQL Server 2017. O sinalizador de rastreamento 4631 precisa ser
ONglobalmente antes de criar a chave mestra, o certificado ou a chave simétrica no SQL Server 2017. Isso permite que esses itens criados interoperem com o SQL Server 2016 e versões anteriores. Esse sinalizador de rastreamento só deve ser ativado temporariamente para fazer a recriptografia de dados com chaves derivadas de SHA2.
- O sinalizador de rastreamento 4631 é novo no SQL Server 2017. O sinalizador de rastreamento 4631 precisa ser
Para mais informações, consulte: