Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
Si applica a: SQL Server 2016 (13.x) e versioni
successive del database SQL di
Azure Istanza gestita di SQL di Azure
Modifica una chiave di crittografia della colonna in un database, aggiungendo o eliminando un valore crittografato. A una chiave di crittografia della colonna possono essere associati fino a due valori, in modo da consentire la rotazione della chiave master della colonna corrispondente. Questo tipo di chiave consente di crittografare le colonne usando Always Encrypted o Always Encrypted con enclavi sicuri. Prima di aggiungere un valore chiave di cifratura a colonna, devi definire la chiave principale della colonna utilizzata per criptare il valore utilizzando SQL Server Management Studio o l'istruzioneCREATE MASTER KEY.
Convenzioni relative alla sintassi Transact-SQL
Sintassi
ALTER COLUMN ENCRYPTION KEY key_name
[ ADD | DROP ] VALUE
(
COLUMN_MASTER_KEY = column_master_key_name
[, ALGORITHM = 'algorithm_name' , ENCRYPTED_VALUE = varbinary_literal ]
) [;]
Argomenti
key_name
Chiave di crittografia della colonna che si sta modificando.
column_master_key_name
Specifica il nome della chiave master della colonna usata per crittografare la chiave di crittografia della colonna.
algorithm_name
Nome dell'algoritmo di crittografia usato per crittografare il valore. L'algoritmo per i provider di sistema deve essere RSA_OAEP. Questo argomento non è valido quando si elimina un valore della chiave di crittografia della colonna.
varbinary_literal
BLOB della chiave di crittografia della colonna crittografato con la chiave di crittografia master specificata. Questo argomento non è valido quando si elimina un valore della chiave di crittografia della colonna.
Avviso
Non passare mai i valori della chiave di crittografia della colonna in testo non crittografato in questa istruzione, altrimenti sarà compromesso il vantaggio di questa funzionalità.
Osservazioni:
In genere, una chiave di crittografia della colonna viene creata con un solo valore crittografato. Quando una chiave master della colonna deve essere ruotata, vale a dire la chiave master della colonna corrente deve essere sostituita dalla nuova chiave master della colonna, è possibile aggiungere un nuovo valore della chiave di crittografia della colonna, crittografato con la nuova chiave master della colonna. Questo flusso di lavoro consente di garantire alle applicazioni client l'accesso ai dati crittografati con la chiave di crittografia della colonna, mentre la nuova chiave master della colonna sarà resa disponibile alle applicazioni client. Un driver abilitato per Always Encrypted in un'applicazione client che non ha accesso alla nuova chiave master potrà usare il valore della chiave di crittografia della colonna crittografato con la vecchia chiave master della colonna per accedere ai dati sensibili. Per gli algoritmi di crittografia supportati da Always Encrypted è necessario che il valore del testo non crittografato sia di 256 bit.
Per ruotare le chiavi master della colonna, si consiglia di usare strumenti quali SQL Server Management Studio (SSMS) o PowerShell. Vedere Ruotare le chiavi Always Encrypted con SQL Server Management Studio e Ruotare le chiavi Always Encrypted con PowerShell.
È necessario generare un valore crittografato tramite un provider dell'archivio chiavi in cui è incapsulato l'archivio chiavi contenente la chiave master della colonna.
Le chiavi master della colonna vengono ruotate per i motivi seguenti:
- La conformità alle normative può richiedere che le chiavi vengano ruotate periodicamente.
- Una chiave master della colonna è compromessa e deve essere ruotata per motivi di sicurezza.
- Per abilitare o disabilitare la condivisione delle chiavi di crittografia di colonna con un'enclave protetto sul lato server. Ad esempio, se la chiave master della colonna corrente non supporta i calcoli dell'enclave (ovvero non è stata definita con la proprietà ENCLAVE_COMPUTATIONS) e si vuole abilitare i calcoli dell'enclave nelle colonne protette con una chiave di crittografia della colonna crittografata dalla chiave master della colonna, è necessario sostituire la chiave master della colonna con la nuova chiave con la proprietà ENCLAVE_COMPUTATIONS. Panoramica della gestione delle chiavi per Always Encrypted e Gestire le chiavi per Always Encrypted con enclave sicuri.
Usare sys.columns (Transact-SQL), sys.column_encryption_keys (Transact-SQL) e sys.column_encryption_key_values (Transact-SQL) per visualizzare le informazioni sulle chiavi di crittografia della colonna.
Autorizzazioni
Richiede QUALSIASI COLUMN ENCRYPTION KEY permesso sul database.
Esempi
R. Aggiunta di un valore della chiave di crittografia della colonna
Nell'esempio seguente viene modificata una chiave di crittografia della colonna denominata MyCEK.
ALTER COLUMN ENCRYPTION KEY MyCEK
ADD VALUE
(
COLUMN_MASTER_KEY = MyCMK2,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0064006500650063006200660034006100340031003000380034006200350033003200360066003200630062006200350030003600380065003900620061003000320030003600610037003800310066001DDA6134C3B73A90D349C8905782DD819B428162CF5B051639BA46EC69A7C8C8F81591A92C395711493B25DCBCCC57836E5B9F17A0713E840721D098F3F8E023ABCDFE2F6D8CC4339FC8F88630ED9EBADA5CA8EEAFA84164C1095B12AE161EABC1DF778C07F07D413AF1ED900F578FC00894BEE705EAC60F4A5090BBE09885D2EFE1C915F7B4C581D9CE3FDAB78ACF4829F85752E9FC985DEB8773889EE4A1945BD554724803A6F5DC0A2CD5EFE001ABED8D61E8449E4FAA9E4DD392DA8D292ECC6EB149E843E395CDE0F98D04940A28C4B05F747149B34A0BAEC04FFF3E304C84AF1FF81225E615B5F94E334378A0A888EF88F4E79F66CB377E3C21964AACB5049C08435FE84EEEF39D20A665C17E04898914A85B3DE23D56575EBC682D154F4F15C37723E04974DB370180A9A579BC84F6BC9B5E7C223E5CBEE721E57EE07EFDCC0A3257BBEBF9ADFFB00DBF7EF682EC1C4C47451438F90B4CF8DA709940F72CFDC91C6EB4E37B4ED7E2385B1FF71B28A1D2669FBEB18EA89F9D391D2FDDEA0ED362E6A591AC64EF4AE31CA8766C259ECB77D01A7F5C36B8418F91C1BEADDD4491C80F0016B66421B4B788C55127135DA2FA625FB7FD195FB40D90A6C67328602ECAF3EC4F5894BFD84A99EB4753BE0D22E0D4DE6A0ADFEDC80EB1B556749B4A8AD00E73B329C95827AB91C0256347E85E3C5FD6726D0E1FE82C925D3DF4A9
);
GO
B. Eliminazione di un valore della chiave di crittografia della colonna
Nell'esempio seguente viene modificata una chiave di crittografia della colonna denominata MyCEK eliminando un valore.
ALTER COLUMN ENCRYPTION KEY MyCEK
DROP VALUE
(
COLUMN_MASTER_KEY = MyCMK
);
GO
Vedi anche
CREATE COLUMN ENCRYPTION KEY (Transact-SQL)
DROP COLUMN ENCRYPTION KEY (Transact-SQL)
CREATE COLUMN MASTER KEY (Transact-SQL)
Always Encrypted (Motore di database)
sys.column_encryption_keys (Transact-SQL)
sys.column_encryption_key_values (Transact-SQL)
sys.columns (Transact-SQL)
Sempre criptato
Panoramica della gestione delle chiavi per Always Encrypted
Gestire le chiavi per Always Encrypted con enclavi sicure