Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op: SQL Server 2016 (13.x) en latere versies
van Azure SQL Database
Azure SQL Managed Instance
Wijzigt een kolomversleutelingssleutel in een database, waarbij een versleutelde waarde wordt toegevoegd of verwijderd. Een kolomversleutelingssleutel kan maximaal twee waarden bevatten, waardoor de bijbehorende kolomhoofdsleutel kan worden gedraaid. Een kolomversleutelingssleutel wordt gebruikt bij het versleutelen van kolommen met Always Encrypted of Always Encrypted met beveiligde enclaves. Voordat u een waarde voor de kolomversleutelingssleutel toevoegt, moet u de kolomhoofdsleutel definiëren die is gebruikt om de waarde te versleutelen met behulp van SQL Server Management Studio of de instructie CREATE MASTER KEY .
Transact-SQL syntaxis-conventies
Syntaxis
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
De kolomversleutelingssleutel die u wijzigt.
column_master_key_name
Hiermee geeft u de naam op van de kolomhoofdsleutel (CMK) die wordt gebruikt voor het versleutelen van de kolomversleutelingssleutel (CEK).
algorithm_name
Naam van het versleutelingsalgoritmen dat wordt gebruikt om de waarde te versleutelen. Het algoritme voor de systeembeheerders moet worden RSA_OAEP. Dit argument is niet geldig bij het verwijderen van een waarde voor de kolomversleutelingssleutel.
varbinary_literal
De CEK-BLOB versleuteld met de opgegeven hoofdversleutelingssleutel. Dit argument is niet geldig bij het verwijderen van een waarde voor de kolomversleutelingssleutel.
Waarschuwing
Geef in deze instructie nooit CEK-waarden zonder opmaak door. Als u dit doet, is dit het voordeel van deze functie.
Opmerkingen
Normaal gesproken wordt een kolomversleutelingssleutel gemaakt met slechts één versleutelde waarde. Wanneer een kolomhoofdsleutel moet worden gedraaid (de huidige kolomhoofdsleutel moet worden vervangen door de nieuwe kolomhoofdsleutel), kunt u een nieuwe waarde van de kolomversleutelingssleutel toevoegen, versleuteld met de nieuwe kolomhoofdsleutel. Met deze werkstroom kunt u ervoor zorgen dat clienttoepassingen toegang hebben tot gegevens die zijn versleuteld met de kolomversleutelingssleutel, terwijl de nieuwe kolomhoofdsleutel beschikbaar wordt gemaakt voor clienttoepassingen. Een stuurprogramma met Always Encrypted-functionaliteit in een clienttoepassing die geen toegang heeft tot de nieuwe hoofdsleutel, kan de waarde van de kolomversleutelingssleutel die is versleuteld met de oude kolomhoofdsleutel, gebruiken om toegang te krijgen tot gevoelige gegevens. De versleutelingsalgoritmen, Always Encrypted ondersteunt, vereisen dat de waarde voor tekst zonder opmaak 256 bits heeft.
Het is raadzaam om hulpprogramma's te gebruiken, zoals SQL Server Management Studio (SSMS) of PowerShell om kolomhoofdsleutels te roteren. Zie Always Encrypted-sleutels roteren met behulp van SQL Server Management Studio en Always Encrypted-sleutels draaien met behulp van PowerShell.
Er moet een versleutelde waarde worden gegenereerd met behulp van een sleutelarchiefprovider die het sleutelarchief met de kolomhoofdsleutel inkapselt.
De hoofdsleutels van de kolom worden om de volgende redenen geroteerd:
- Nalevingsvoorschriften vereisen mogelijk dat sleutels periodiek worden geroteerd.
- Een kolomhoofdsleutel is aangetast en moet om veiligheidsredenen worden gedraaid.
- Als u kolomversleutelingssleutels wilt in- of uitschakelen met een beveiligde enclave aan de serverzijde. Als uw huidige kolomhoofdsleutel bijvoorbeeld geen enclaveberekeningen ondersteunt (is niet gedefinieerd met de eigenschap ENCLAVE_COMPUTATIONS) en u enclaveberekeningen wilt inschakelen voor kolommen die zijn beveiligd met een kolomversleutelingssleutel die door de kolomhoofdsleutel wordt versleuteld, moet u de kolomhoofdsleutel vervangen door de nieuwe sleutel door de eigenschap ENCLAVE_COMPUTATIONS. Overzicht van sleutelbeheer voor Always Encrypted en Sleutels beheren voor Always Encrypted met beveiligde enclaves.
Gebruik sys.columns (Transact-SQL), sys.column_encryption_keys (Transact-SQL) en sys.column_encryption_key_values (Transact-SQL) om informatie over kolomversleutelingssleutels weer te geven.
Permissions
Vereist ALTER ANY COLUMN ENCRYPTION KEY-machtiging voor de database.
Voorbeelden
Eén. Een waarde voor een kolomversleutelingssleutel toevoegen
In het volgende voorbeeld wordt een kolomversleutelingssleutel gewijzigd met de naam MyCEK.
ALTER COLUMN ENCRYPTION KEY MyCEK
ADD VALUE
(
COLUMN_MASTER_KEY = MyCMK2,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0064006500650063006200660034006100340031003000380034006200350033003200360066003200630062006200350030003600380065003900620061003000320030003600610037003800310066001DDA6134C3B73A90D349C8905782DD819B428162CF5B051639BA46EC69A7C8C8F81591A92C395711493B25DCBCCC57836E5B9F17A0713E840721D098F3F8E023ABCDFE2F6D8CC4339FC8F88630ED9EBADA5CA8EEAFA84164C1095B12AE161EABC1DF778C07F07D413AF1ED900F578FC00894BEE705EAC60F4A5090BBE09885D2EFE1C915F7B4C581D9CE3FDAB78ACF4829F85752E9FC985DEB8773889EE4A1945BD554724803A6F5DC0A2CD5EFE001ABED8D61E8449E4FAA9E4DD392DA8D292ECC6EB149E843E395CDE0F98D04940A28C4B05F747149B34A0BAEC04FFF3E304C84AF1FF81225E615B5F94E334378A0A888EF88F4E79F66CB377E3C21964AACB5049C08435FE84EEEF39D20A665C17E04898914A85B3DE23D56575EBC682D154F4F15C37723E04974DB370180A9A579BC84F6BC9B5E7C223E5CBEE721E57EE07EFDCC0A3257BBEBF9ADFFB00DBF7EF682EC1C4C47451438F90B4CF8DA709940F72CFDC91C6EB4E37B4ED7E2385B1FF71B28A1D2669FBEB18EA89F9D391D2FDDEA0ED362E6A591AC64EF4AE31CA8766C259ECB77D01A7F5C36B8418F91C1BEADDD4491C80F0016B66421B4B788C55127135DA2FA625FB7FD195FB40D90A6C67328602ECAF3EC4F5894BFD84A99EB4753BE0D22E0D4DE6A0ADFEDC80EB1B556749B4A8AD00E73B329C95827AB91C0256347E85E3C5FD6726D0E1FE82C925D3DF4A9
);
GO
B. Waarde van een kolomversleutelingssleutel verwijderen
In het volgende voorbeeld wordt een kolomversleutelingssleutel gewijzigd die wordt aangeroepen MyCEK door een waarde te verwijderen.
ALTER COLUMN ENCRYPTION KEY MyCEK
DROP VALUE
(
COLUMN_MASTER_KEY = MyCMK
);
GO
Zie ook
CREATE COLUMN ENCRYPTION KEY (Transact-SQL)
DROP COLUMN ENCRYPTION KEY (Transact-SQL)
HOOFDSLEUTEL VOOR KOLOM MAKEN (Transact-SQL)
Always Encrypted (database-engine)
sys.column_encryption_keys (Transact-SQL)
sys.column_encryption_key_values (Transact-SQL)
sys.columns (Transact-SQL)
Altijd versleuteld
Overzicht van Sleutelbeheer voor Always Encrypted
Sleutels beheren voor Always Encrypted met beveiligde enclaves