Delen via


CREATE COLUMN ENCRYPTION KEY (Transact-SQL)

Van toepassing op: SQL Server 2016 (13.x) en latere versies van Azure SQL DatabaseAzure SQL Managed Instance

Hiermee maakt u een metagegevensobject voor kolomversleutelingssleutels voor Always Encrypted of Always Encrypted met beveiligde enclaves. Een metagegevensobject voor kolomversleutelingssleutels bevat een of twee versleutelde waarden van een kolomversleutelingssleutel die wordt gebruikt om gegevens in een kolom te versleutelen. Elke waarde wordt versleuteld met behulp van een kolomhoofdsleutel.

Transact-SQL syntaxis-conventies

Syntaxis

CREATE COLUMN ENCRYPTION KEY key_name   
WITH VALUES  
  (  
    COLUMN_MASTER_KEY = column_master_key_name,   
    ALGORITHM = 'algorithm_name',   
    ENCRYPTED_VALUE = varbinary_literal  
  )   
[, (  
    COLUMN_MASTER_KEY = column_master_key_name,   
    ALGORITHM = 'algorithm_name',   
    ENCRYPTED_VALUE = varbinary_literal  
  ) ]   
[;]  

Arguments

key_name
Is de naam waarmee de kolomversleutelingssleutel bekend wordt in de database.

column_master_key_name Hiermee geeft u de naam op van de aangepaste CMK die wordt gebruikt voor het versleutelen van de kolomversleutelingssleutel.

algorithm_name
Naam van het versleutelingsalgoritmen dat wordt gebruikt om de waarde van de kolomversleutelingssleutel te versleutelen. Het algoritme voor de systeembeheerders moet worden RSA_OAEP.

varbinary_literal
De waarde van de versleutelde kolomversleutelingssleutel blob.

Waarschuwing

Geef in deze instructie nooit waarden door voor versleuteling van kolomversleuteling zonder opmaak. Als u dit doet, wordt het voordeel van deze functie aangetast.

Opmerkingen

De CREATE COLUMN ENCRYPTION KEY instructie moet ten minste één of twee waarden bevatten. U kunt de ALTER COLUMN ENCRYPTION KEY (Transact-SQL) gebruiken om later een tweede waarde toe te voegen. U kunt de ALTER COLUMN ENCRYPTION KEY instructie ook gebruiken om een waarde te verwijderen.

Normaal gesproken wordt een kolomversleutelingssleutel gemaakt met slechts één versleutelde waarde. Soms moet u een kolomhoofdsleutel draaien om de huidige kolomhoofdsleutel te vervangen door de nieuwe kolomhoofdsleutel. Wanneer u de sleutel wilt draaien, voegt u een nieuwe waarde van de kolomversleutelingssleutel toe, versleuteld met de nieuwe hoofdsleutel van de kolom. Met deze rotatie kunt u ervoor zorgen dat clienttoepassingen toegang hebben tot gegevens die zijn versleuteld met de kolomversleutelingssleutel, terwijl de nieuwe kolomhoofdsleutel beschikbaar wordt gesteld voor clienttoepassingen. Een stuurprogramma met Always Encrypted-functionaliteit in een clienttoepassing die geen toegang heeft tot de nieuwe hoofdsleutel, gebruikt de waarde van de kolomversleutelingssleutel die is versleuteld met de oude hoofdsleutel van de kolom 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 voor het beheren van kolomversleutelingssleutels. Dergelijke hulpprogramma's genereren versleutelde waarden en geven automatisch instructies CREATE COLUMN ENCRYPTION KEY uit om metagegevensobject voor kolomversleutelingssleutels te maken. Zie Always Encrypted-sleutels inrichten met BEHULP van SQL Server Management Studio en Always Encrypted-sleutels inrichten met behulp van PowerShell.

U kunt ook programmatisch een waarde voor kolomversleutelingssleutels genereren met behulp van een sleutelarchiefprovider die het sleutelarchief inkapselt met de hoofdsleutel van de kolom. Zie Toepassingen ontwikkelen met Always Encrypted voor meer informatie.

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

Hiervoor is de machtiging ALTER ANY COLUMN ENCRYPTION KEY vereist.

Voorbeelden

Eén. Een kolomversleutelingssleutel maken

In het volgende voorbeeld wordt een kolomversleutelingssleutel gemaakt met de naam MyCEK.

CREATE COLUMN ENCRYPTION KEY MyCEK   
WITH VALUES  
(  
    COLUMN_MASTER_KEY = MyCMK,   
    ALGORITHM = 'RSA_OAEP',   
    ENCRYPTED_VALUE = 0x01700000016C006F00630061006C006D0061006300680069006E0065002F006D0079002F003200660061006600640038003100320031003400340034006500620031006100320065003000360039003300340038006100350064003400300032003300380065006600620063006300610031006300284FC4316518CF3328A6D9304F65DD2CE387B79D95D077B4156E9ED8683FC0E09FA848275C685373228762B02DF2522AFF6D661782607B4A2275F2F922A5324B392C9D498E4ECFC61B79F0553EE8FB2E5A8635C4DBC0224D5A7F1B136C182DCDE32A00451F1A7AC6B4492067FD0FAC7D3D6F4AB7FC0E86614455DBB2AB37013E0A5B8B5089B180CA36D8B06CDB15E95A7D06E25AACB645D42C85B0B7EA2962BD3080B9A7CDB805C6279FE7DD6941E7EA4C2139E0D4101D8D7891076E70D433A214E82D9030CF1F40C503103075DEEB3D64537D15D244F503C2750CF940B71967F51095BFA51A85D2F764C78704CAB6F015EA87753355367C5C9F66E465C0C66BADEDFDF76FB7E5C21A0D89A2FCCA8595471F8918B1387E055FA0B816E74201CD5C50129D29C015895CD073925B6EA87CAF4A4FAF018C06A3856F5DFB724F42807543F777D82B809232B465D983E6F19DFB572BEA7B61C50154605452A891190FB5A0C4E464862CF5EFAD5E7D91F7D65AA1A78F688E69A1EB098AB42E95C674E234173CD7E0925541AD5AE7CED9A3D12FDFE6EB8EA4F8AAD2629D4F5A18BA3DDCC9CF7F352A892D4BEBDC4A1303F9C683DACD51A237E34B045EBE579A381E26B40DCFBF49EFFA6F65D17F37C6DBA54AA99A65D5573D4EB5BA038E024910A4D36B79A1D4E3C70349DADFF08FD8B4DEE77FDB57F01CB276ED5E676F1EC973154F86  
);  
GO  

Een kolomversleutelingssleutel met twee waarden maken

In het volgende voorbeeld wordt een kolomversleutelingssleutel met twee waarden gemaakt TwoValueCEK .


CREATE COLUMN ENCRYPTION KEY TwoValueCEK   
WITH VALUES  
(  
    COLUMN_MASTER_KEY = CMK1,   
    ALGORITHM = 'RSA_OAEP',   
    ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0037006300380061003100310033003400320037003800620037003000630038003100390062003900630039003400360061006600340039006500610030003200650038006200650038003400340065006C33A82ECF04A7185824B4545457AC5244CD9C219E64067B9520C0081B8399B58C2863F7494ABE3694BD87D55FFD7576FFDC47C28F94ECC99577DF4FB8FA19AA95764FEF889CDE0F176DA5897B74382FBB22756CE2921050A09201A0EB6AF3D6091014C30146EA62635EE8CBF0A8074DEDFF125CEA80D1C0F5E8C58750A07D270E2A8BF824EE4C0C156366BF26D38CCE49EBDD5639A2DF029A7DBAE5A5D111F2F2FA3246DF8C2FA83C1E542C10570FADA98F6B29478DC58CE5CBDD407CCEFCDB97814525F6F32BECA266014AC346AC39C4F185C6C0F0A24FEC4DFA015649624692DE7865B9827BA22C3B574C9FD169F822B609F902288C5880EB25F14BD990D871B1BC4BA3A5B237AF76D26354773FA2A25CF4511AF58C911E601CFCB1905128C997844EED056C2AE7F0B48700AB41307E470FF9520997D0EB0D887DE11AFE574FFE845B7DC6C03FEEE8D467236368FC0CB2FDBD54DADC65B10B3DE6C80DF8B7B3F8F3CE5BE914713EE7B1FA5B7A578359592B8A5FDFDDE5FF9F392BC87C3CD02FBA94582AC063BBB9FFAC803FD489E16BEB28C4E3374A8478C737236A0B232F5A9DDE4D119573F1AEAE94B2192B81575AD6F57E670C1B2AB91045124DFDAEC2898F3F0112026DFC93BF9391D667D1AD7ED7D4E6BB119BBCEF1D1ADA589DD3E1082C3DAD13223BE438EB9574DA04E9D8A06320CAC6D3EC21D5D1C2A0AA484C7C  
),  
(  
    COLUMN_MASTER_KEY = CMK2,   
    ALGORITHM = 'RSA_OAEP',   
    ENCRYPTED_VALUE = 0x016E000001630075007200720065006E00740075007300650072002F006D0079002F0064006500650063006200660034006100340031003000380034006200350033003200360066003200630062006200350030003600380065003900620061003000320030003600610037003800310066001DDA6134C3B73A90D349C8905782DD819B428162CF5B051639BA46EC69A7C8C8F81591A92C395711493B25DCBCCC57836E5B9F17A0713E840721D098F3F8E023ABCDFE2F6D8CC4339FC8F88630ED9EBADA5CA8EEAFA84164C1095B12AE161EABC1DF778C07F07D413AF1ED900F578FC00894BEE705EAC60F4A5090BBE09885D2EFE1C915F7B4C581D9CE3FDAB78ACF4829F85752E9FC985DEB8773889EE4A1945BD554724803A6F5DC0A2CD5EFE001ABED8D61E8449E4FAA9E4DD392DA8D292ECC6EB149E843E395CDE0F98D04940A28C4B05F747149B34A0BAEC04FFF3E304C84AF1FF81225E615B5F94E334378A0A888EF88F4E79F66CB377E3C21964AACB5049C08435FE84EEEF39D20A665C17E04898914A85B3DE23D56575EBC682D154F4F15C37723E04974DB370180A9A579BC84F6BC9B5E7C223E5CBEE721E57EE07EFDCC0A3257BBEBF9ADFFB00DBF7EF682EC1C4C47451438F90B4CF8DA709940F72CFDC91C6EB4E37B4ED7E2385B1FF71B28A1D2669FBEB18EA89F9D391D2FDDEA0ED362E6A591AC64EF4AE31CA8766C259ECB77D01A7F5C36B8418F91C1BEADDD4491C80F0016B66421B4B788C55127135DA2FA625FB7FD195FB40D90A6C67328602ECAF3EC4F5894BFD84A99EB4753BE0D22E0D4DE6A0ADFEDC80EB1B556749B4A8AD00E73B329C95827AB91C0256347E85E3C5FD6726D0E1FE82C925D3DF4A9  
);  
GO  

Zie ook

WISSELSLEUTEL VOOR KOLOMVERSLEUTELING (Transact-SQL)
DROP COLUMN ENCRYPTION KEY (Transact-SQL)
HOOFDSLEUTEL VOOR KOLOM MAKEN (Transact-SQL)
sys.column_encryption_keys (Transact-SQL)
sys.column_encryption_key_values (Transact-SQL)
sys.columns (Transact-SQL)
Altijd versleuteld
Always Encrypted met beveiligde enclaves
Overzicht van Sleutelbeheer voor Always Encrypted
Sleutels beheren voor Always Encrypted met beveiligde enclaves