Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för: SQL Server 2016 (13.x) och senare versioner
Azure SQL Database
Azure SQL Managed Instance
Ändrar en kolumnkrypteringsnyckel i en databas, lägger till eller släpper ett krypterat värde. En kolumnkrypteringsnyckel kan ha upp till två värden, vilket möjliggör rotation av motsvarande kolumnhuvudnyckel. En kolumnkrypteringsnyckel används vid kryptering av kolumner med Always Encrypted eller Always Encrypted med säkra enklaver. Innan du lägger till ett kolumnkrypteringsnyckelvärde måste du definiera den kolumnhuvudnyckel som användes för att kryptera värdet med hjälp av SQL Server Management Studio eller INSTRUKTIONEN SKAPA HUVUDNYCKEL .
Transact-SQL syntaxkonventioner
Syntax
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
Den kolumnkrypteringsnyckel som du ändrar.
column_master_key_name
Anger namnet på den kolumnhuvudnyckel (CMK) som används för att kryptera kolumnkrypteringsnyckeln (CEK).
algorithm_name
Namnet på krypteringsalgoritmen som används för att kryptera värdet. Algoritmen för systemprovidrar måste vara RSA_OAEP. Det här argumentet är inte giltigt när du släpper ett kolumnkrypteringsnyckelvärde.
varbinary_literal
CEK BLOB krypterad med den angivna huvudkrypteringsnyckeln. Det här argumentet är inte giltigt när du släpper ett kolumnkrypteringsnyckelvärde.
Varning
Skicka aldrig CEK-värden i klartext i den här instruktionen. Om du gör det kan du dra nytta av den här funktionen.
Anmärkningar
Vanligtvis skapas en kolumnkrypteringsnyckel med bara ett krypterat värde. När en kolumnhuvudnyckel måste roteras (den aktuella kolumnhuvudnyckeln måste ersättas med den nya kolumnhuvudnyckeln) kan du lägga till ett nytt värde för kolumnkrypteringsnyckeln, krypterad med den nya kolumnhuvudnyckeln. Med det här arbetsflödet kan du se till att klientprogram kan komma åt data som krypterats med kolumnkrypteringsnyckeln, medan den nya kolumnhuvudnyckeln görs tillgänglig för klientprogram. En Always Encrypted-aktiverad drivrutin i ett klientprogram som inte har åtkomst till den nya huvudnyckeln kan använda kolumnkrypteringsnyckelvärdet krypterat med den gamla kolumnhuvudnyckeln för att få åtkomst till känsliga data. Krypteringsalgoritmerna, som always encrypted stöder, kräver att klartextvärdet har 256 bitar.
Vi rekommenderar att du använder verktyg, till exempel SQL Server Management Studio (SSMS) eller PowerShell för att rotera kolumnhuvudnycklar. Se Rotera Always Encrypted-nycklar med SQL Server Management Studio och Rotera always encrypted-nycklar med PowerShell.
Ett krypterat värde ska genereras med hjälp av en nyckellagringsprovider som kapslar in nyckelarkivet med kolumnhuvudnyckeln.
Kolumnhuvudnycklar roteras av följande skäl:
- Efterlevnadsregler kan kräva att nycklar roteras regelbundet.
- En kolumnhuvudnyckel komprometteras och måste roteras av säkerhetsskäl.
- Aktivera eller inaktivera krypteringsnycklar för delningskolumner med en säker enklav på serversidan. Om din aktuella kolumnhuvudnyckel till exempel inte stöder enklaverberäkningar (har inte definierats med egenskapen ENCLAVE_COMPUTATIONS) och du vill aktivera enklaverberäkningar på kolumner som skyddas med en kolumnkrypteringsnyckel som kolumnhuvudnyckeln krypterar, måste du ersätta kolumnhuvudnyckeln med den nya nyckeln med egenskapen ENCLAVE_COMPUTATIONS. Översikt över nyckelhantering för Always Encrypted och Hantera nycklar för Always Encrypted med säkra enklaver.
Använd sys.columns (Transact-SQL), sys.column_encryption_keys (Transact-SQL) och sys.column_encryption_key_values (Transact-SQL) för att visa information om kolumnkrypteringsnycklar.
Permissions
Kräver ändra valfri kolumnkrypteringsnyckelbehörighet för databasen.
Examples
A. Lägga till ett kolumnkrypteringsnyckelvärde
I följande exempel ändras en kolumnkrypteringsnyckel med namnet MyCEK.
ALTER COLUMN ENCRYPTION KEY MyCEK
ADD VALUE
(
COLUMN_MASTER_KEY = MyCMK2,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0064006500650063006200660034006100340031003000380034006200350033003200360066003200630062006200350030003600380065003900620061003000320030003600610037003800310066001DDA6134C3B73A90D349C8905782DD819B428162CF5B051639BA46EC69A7C8C8F81591A92C395711493B25DCBCCC57836E5B9F17A0713E840721D098F3F8E023ABCDFE2F6D8CC4339FC8F88630ED9EBADA5CA8EEAFA84164C1095B12AE161EABC1DF778C07F07D413AF1ED900F578FC00894BEE705EAC60F4A5090BBE09885D2EFE1C915F7B4C581D9CE3FDAB78ACF4829F85752E9FC985DEB8773889EE4A1945BD554724803A6F5DC0A2CD5EFE001ABED8D61E8449E4FAA9E4DD392DA8D292ECC6EB149E843E395CDE0F98D04940A28C4B05F747149B34A0BAEC04FFF3E304C84AF1FF81225E615B5F94E334378A0A888EF88F4E79F66CB377E3C21964AACB5049C08435FE84EEEF39D20A665C17E04898914A85B3DE23D56575EBC682D154F4F15C37723E04974DB370180A9A579BC84F6BC9B5E7C223E5CBEE721E57EE07EFDCC0A3257BBEBF9ADFFB00DBF7EF682EC1C4C47451438F90B4CF8DA709940F72CFDC91C6EB4E37B4ED7E2385B1FF71B28A1D2669FBEB18EA89F9D391D2FDDEA0ED362E6A591AC64EF4AE31CA8766C259ECB77D01A7F5C36B8418F91C1BEADDD4491C80F0016B66421B4B788C55127135DA2FA625FB7FD195FB40D90A6C67328602ECAF3EC4F5894BFD84A99EB4753BE0D22E0D4DE6A0ADFEDC80EB1B556749B4A8AD00E73B329C95827AB91C0256347E85E3C5FD6726D0E1FE82C925D3DF4A9
);
GO
B. Ta bort ett kolumnkrypteringsnyckelvärde
I följande exempel ändras en kolumnkrypteringsnyckel som anropas MyCEK genom att ett värde släpps.
ALTER COLUMN ENCRYPTION KEY MyCEK
DROP VALUE
(
COLUMN_MASTER_KEY = MyCMK
);
GO
Se även
SKAPA KOLUMNKRYPTERINGSNYCKEL (Transact-SQL)
SLÄPP KOLUMNKRYPTERINGSNYCKEL (Transact-SQL)
SKAPA KOLUMNHUVUDNYCKEL (Transact-SQL)
Always Encrypted (databasmotor)
sys.column_encryption_keys (Transact-SQL)
sys.column_encryption_key_values (Transact-SQL)
sys.columns (Transact-SQL)
Alltid krypterad
Översikt över nyckelhantering för Always Encrypted
Hantera nycklar för Always Encrypted med säkra enklaver