Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Este tópico descreve como criar chaves simétricas idênticas em dois servidores diferentes no SQL Server 2014 usando o Transact-SQL. Para descriptografar texto cifrado, você precisa da chave que foi usada para criptografá-lo. 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
Nesse Tópico
Antes de começar:
Para criar chaves simétricas idênticas em dois servidores diferentes, usando Transact-SQL
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 um dos seguintes: senha, certificado, chave simétrica, chave assimétrica ou provedor. A chave pode ter mais de uma criptografia de cada tipo. Em outras palavras, uma única chave simétrica pode ser criptografada com o uso de vários certificados, senhas, chaves simétricas e chaves assimétricas ao mesmo tempo.
Quando uma chave simétrica é criptografada com uma senha e não com a chave pública da chave mestre do banco de dados, o algoritmo de criptografia TRIPLE DES é usado. Por esse motivo, as chaves criadas com um algoritmo de criptografia forte, como AES, são protegidas por um algoritmo mais fraco.
Segurança
Permissões
Requer a permissão de ALTERAR QUALQUER CHAVE SIMÉTRICA no banco de dados. Se AUTHORIZATION for especificado, será necessária a permissão IMPERSONATE no usuário de banco de dados ou a permissão ALTER na função de aplicativo. Se a criptografia for feita por certificado ou chave assimétrica, será necessária 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 ter 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 a chave executando as instruções CREATE MASTER KEY, CREATE CERTIFICATE e CREATE SYMMETRIC KEY.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = 'My p@55w0Rd'; 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 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 seguinte código como o valor de
@blobe execute esse código 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); SET @blob = SELECT CONVERT(varchar(8000), decryptbykey(@blob)); GOFeche a chave simétrica em ambos os servidores.
CLOSE SYMMETRIC KEY [key_DataShare]; GO
Para obter mais informações, consulte o seguinte: