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 2016 (13.x) e versões
posteriores Banco de Dados
SQLdo Azure Azure SQL Managed Instance
Altera uma chave de criptografia de coluna em um banco de dados, adicionando ou descartando um valor criptografado. Uma chave de criptografia de coluna pode ter até dois valores, o que permite a rotação da chave mestra da coluna correspondente. Uma chave de criptografia de coluna é usada ao criptografar colunas usando Always Encrypted ou Always Encrypted com enclaves seguros. Antes de adicionar um valor de chave de criptografia de coluna, você deve definir a chave mestra de coluna que foi usada para criptografar o valor usando o SQL Server Management Studio ou a instrução CREATE MASTER KEY .
Transact-SQL convenções de sintaxe
Sintaxe
ALTER COLUMN ENCRYPTION KEY key_name
[ ADD | DROP ] VALUE
(
COLUMN_MASTER_KEY = column_master_key_name
[, ALGORITHM = 'algorithm_name' , ENCRYPTED_VALUE = varbinary_literal ]
) [;]
Arguments
key_name
A chave de criptografia de coluna que você está alterando.
column_master_key_name
Especifica o nome da chave mestra de coluna (CMK) usada para criptografar a chave de criptografia de coluna (CEK).
algorithm_name
Nome do algoritmo de encriptação usado para encriptar o valor. O algoritmo para os provedores de sistema deve ser RSA_OAEP. Esse argumento não é válido ao descartar um valor de chave de criptografia de coluna.
varbinary_literal
O BLOB CEK foi criptografado com a chave de criptografia mestre especificada. Esse argumento não é válido ao descartar um valor de chave de criptografia de coluna.
Advertência
Nunca passe valores CEK de texto simples nesta instrução. Isso incluirá o benefício desse recurso.
Observações
Normalmente, uma chave de criptografia de coluna é criada com apenas um valor criptografado. Quando uma chave mestra de coluna precisa ser girada (a chave mestra de coluna atual precisa ser substituída pela nova chave mestra de coluna), você pode adicionar um novo valor da chave de criptografia de coluna, criptografada com a nova chave mestra de coluna. Esse fluxo de trabalho permite garantir que os aplicativos cliente possam acessar dados criptografados com a chave de criptografia de coluna, enquanto a nova chave mestra de coluna está sendo disponibilizada para aplicativos cliente. Um driver habilitado para Always Encrypted em um aplicativo cliente que não tem acesso à nova chave mestra, poderá usar o valor da chave de criptografia de coluna criptografada com a chave mestra de coluna antiga para acessar dados confidenciais. Os algoritmos de encriptação, sempre suportados, requerem que o valor de texto simples tenha 256 bits.
É recomendável usar ferramentas, como o SQL Server Management Studio (SSMS) ou o PowerShell, para girar chaves mestras de coluna. Consulte Girar chaves sempre criptografadas usando o SQL Server Management Studio e Girar chaves sempre criptografadas usando o PowerShell.
Um valor criptografado deve ser gerado usando um provedor de armazenamento de chaves que encapsula o armazenamento de chaves que contém a chave mestra da coluna.
As teclas mestras de coluna são giradas pelos seguintes motivos:
- Os regulamentos de conformidade podem exigir que as chaves sejam periodicamente alternadas.
- Uma chave mestra de coluna está comprometida e precisa ser girada por motivos de segurança.
- Para habilitar ou desabilitar o compartilhamento de chaves de criptografia de coluna com um enclave seguro no lado do servidor. Por exemplo, se sua chave mestra de coluna atual não oferecer suporte a cálculos de enclave (não tiver sido definida com a propriedade ENCLAVE_COMPUTATIONS) e você quiser habilitar cálculos de enclave em colunas protegidas com uma chave de criptografia de coluna que sua chave mestra de coluna criptografa, será necessário substituir a chave mestra de coluna pela nova chave com a propriedade ENCLAVE_COMPUTATIONS. Visão geral do gerenciamento de chaves para Always Encrypted e gerenciar chaves para Always Encrypted com enclaves seguros.
Use sys.columns (Transact-SQL), sys.column_encryption_keys (Transact-SQL) e sys.column_encryption_key_values (Transact-SQL) para exibir informações sobre chaves de criptografia de coluna.
Permissions
Requer a permissão ALTER ANY COLUMN ENCRYPTION KEY no banco de dados.
Examples
A. Adicionando um valor de chave de criptografia de coluna
O exemplo a seguir altera uma chave de criptografia de coluna chamada MyCEK.
ALTER COLUMN ENCRYPTION KEY MyCEK
ADD VALUE
(
COLUMN_MASTER_KEY = MyCMK2,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0064006500650063006200660034006100340031003000380034006200350033003200360066003200630062006200350030003600380065003900620061003000320030003600610037003800310066001DDA6134C3B73A90D349C8905782DD819B428162CF5B051639BA46EC69A7C8C8F81591A92C395711493B25DCBCCC57836E5B9F17A0713E840721D098F3F8E023ABCDFE2F6D8CC4339FC8F88630ED9EBADA5CA8EEAFA84164C1095B12AE161EABC1DF778C07F07D413AF1ED900F578FC00894BEE705EAC60F4A5090BBE09885D2EFE1C915F7B4C581D9CE3FDAB78ACF4829F85752E9FC985DEB8773889EE4A1945BD554724803A6F5DC0A2CD5EFE001ABED8D61E8449E4FAA9E4DD392DA8D292ECC6EB149E843E395CDE0F98D04940A28C4B05F747149B34A0BAEC04FFF3E304C84AF1FF81225E615B5F94E334378A0A888EF88F4E79F66CB377E3C21964AACB5049C08435FE84EEEF39D20A665C17E04898914A85B3DE23D56575EBC682D154F4F15C37723E04974DB370180A9A579BC84F6BC9B5E7C223E5CBEE721E57EE07EFDCC0A3257BBEBF9ADFFB00DBF7EF682EC1C4C47451438F90B4CF8DA709940F72CFDC91C6EB4E37B4ED7E2385B1FF71B28A1D2669FBEB18EA89F9D391D2FDDEA0ED362E6A591AC64EF4AE31CA8766C259ECB77D01A7F5C36B8418F91C1BEADDD4491C80F0016B66421B4B788C55127135DA2FA625FB7FD195FB40D90A6C67328602ECAF3EC4F5894BFD84A99EB4753BE0D22E0D4DE6A0ADFEDC80EB1B556749B4A8AD00E73B329C95827AB91C0256347E85E3C5FD6726D0E1FE82C925D3DF4A9
);
GO
B. Descartando um valor de chave de criptografia de coluna
O exemplo a seguir altera uma chave de criptografia de coluna chamada MyCEK soltando um valor.
ALTER COLUMN ENCRYPTION KEY MyCEK
DROP VALUE
(
COLUMN_MASTER_KEY = MyCMK
);
GO
Ver também
CRIAR CHAVE DE CRIPTOGRAFIA DE COLUNA (Transact-SQL)
SOLTAR CHAVE DE CRIPTOGRAFIA DE COLUNA (Transact-SQL)
CRIAR CHAVE MESTRA DE COLUNA (Transact-SQL)
Sempre criptografado (Mecanismo de Banco de Dados)
sys.column_encryption_keys (Transact-SQL)
sys.column_encryption_key_values (Transact-SQL)
sys.columns (Transact-SQL)
Sempre criptografado
Visão geral do gerenciamento de chaves para sempre criptografado
Gerencie chaves para Always Encrypted com enclaves seguros