Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy: SQL Server 2016 (13.x) i nowsze wersje
usługi Azure SQL Database
Azure SQL Managed Instance
Tworzy obiekt metadanych klucza szyfrowania kolumny dla funkcji Always Encrypted lub Always Encrypted z bezpiecznymi enklawami. Obiekt metadanych klucza szyfrowania kolumny zawiera jedną lub dwie zaszyfrowane wartości klucza szyfrowania kolumny używanego do szyfrowania danych w kolumnie. Każda wartość jest szyfrowana przy użyciu klucza głównego kolumny.
Transact-SQL konwencje składni
Składnia
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
To nazwa, za pomocą której klucz szyfrowania kolumny będzie znany w bazie danych.
column_master_key_name Określa nazwę niestandardowego klucza cmK używanego do szyfrowania klucza szyfrowania kolumny.
algorithm_name
Nazwa algorytmu szyfrowania używanego do szyfrowania wartości klucza szyfrowania kolumny. Algorytm dla dostawców systemu musi być RSA_OAEP.
varbinary_literal
Zaszyfrowana wartość klucza szyfrowania kolumny BLOB.
Ostrzeżenie
Nigdy nie przekazuj wartości klucza szyfrowania kolumny w postaci zwykłego tekstu w tej instrukcji. W ten sposób naruszy to korzyści wynikające z tej funkcji.
Uwagi
Instrukcja CREATE COLUMN ENCRYPTION KEY musi zawierać co najmniej jedną lub dwie wartości. Aby później dodać drugą wartość, możesz użyć ALTER COLUMN ENCRYPTION (Transact-SQL). Możesz również użyć instrukcji ALTER COLUMN ENCRYPTION KEY , aby usunąć wartość.
Zazwyczaj klucz szyfrowania kolumny jest tworzony przy użyciu tylko jednej zaszyfrowanej wartości. Czasami należy obrócić klucz główny kolumny, aby zastąpić bieżący klucz główny kolumny nowym kluczem głównym kolumny. Gdy musisz obrócić klucz, dodaj nową wartość klucza szyfrowania kolumny zaszyfrowaną przy użyciu nowego klucza głównego kolumny. Ta rotacja pozwala zagwarantować, że aplikacje klienckie będą mogły uzyskiwać dostęp do danych zaszyfrowanych przy użyciu klucza szyfrowania kolumny, a nowy klucz główny kolumny jest udostępniany aplikacjom klienckim. Sterownik z włączoną funkcją Always Encrypted w aplikacji klienckiej, który nie ma dostępu do nowego klucza głównego, użyje wartości klucza szyfrowania kolumny zaszyfrowanej przy użyciu starego klucza głównego kolumny, aby uzyskać dostęp do poufnych danych.
Algorytmy szyfrowania obsługiwane przez funkcję Always Encrypted wymagają, aby wartość zwykłego tekstu miała 256 bitów.
Zaleca się używanie narzędzi, takich jak SQL Server Management Studio (SSMS) lub PowerShell do zarządzania kluczami szyfrowania kolumn. Takie narzędzia generują zaszyfrowane wartości i automatycznie wystawiają instrukcje w CREATE COLUMN ENCRYPTION KEY celu utworzenia obiektu metadanych klucza szyfrowania kolumny. Zobacz Aprowizuj klucze Always Encrypted przy użyciu programu SQL Server Management Studio i Aprowizuj klucze Always Encrypted przy użyciu programu PowerShell.
Wartość klucza szyfrowania kolumny można również wygenerować programowo przy użyciu dostawcy magazynu kluczy, który hermetyzuje magazyn kluczy przechowujący klucz główny kolumny. Aby uzyskać więcej informacji, zobacz Tworzenie aplikacji przy użyciu funkcji Always Encrypted.
Użyj sys.columns (Transact-SQL), sys.column_encryption_keys (Transact-SQL) i sys.column_encryption_key_values (Transact-SQL), aby wyświetlić informacje o kluczach szyfrowania kolumn.
Permissions
Wymaga uprawnienia ALTER ANY COLUMN ENCRYPTION KEY .
Przykłady
A. Tworzenie klucza szyfrowania kolumny
Poniższy przykład tworzy klucz szyfrowania kolumny o nazwie MyCEK.
CREATE COLUMN ENCRYPTION KEY MyCEK
WITH VALUES
(
COLUMN_MASTER_KEY = MyCMK,
ALGORITHM = 'RSA_OAEP',
ENCRYPTED_VALUE = 0x01700000016C006F00630061006C006D0061006300680069006E0065002F006D0079002F003200660061006600640038003100320031003400340034006500620031006100320065003000360039003300340038006100350064003400300032003300380065006600620063006300610031006300284FC4316518CF3328A6D9304F65DD2CE387B79D95D077B4156E9ED8683FC0E09FA848275C685373228762B02DF2522AFF6D661782607B4A2275F2F922A5324B392C9D498E4ECFC61B79F0553EE8FB2E5A8635C4DBC0224D5A7F1B136C182DCDE32A00451F1A7AC6B4492067FD0FAC7D3D6F4AB7FC0E86614455DBB2AB37013E0A5B8B5089B180CA36D8B06CDB15E95A7D06E25AACB645D42C85B0B7EA2962BD3080B9A7CDB805C6279FE7DD6941E7EA4C2139E0D4101D8D7891076E70D433A214E82D9030CF1F40C503103075DEEB3D64537D15D244F503C2750CF940B71967F51095BFA51A85D2F764C78704CAB6F015EA87753355367C5C9F66E465C0C66BADEDFDF76FB7E5C21A0D89A2FCCA8595471F8918B1387E055FA0B816E74201CD5C50129D29C015895CD073925B6EA87CAF4A4FAF018C06A3856F5DFB724F42807543F777D82B809232B465D983E6F19DFB572BEA7B61C50154605452A891190FB5A0C4E464862CF5EFAD5E7D91F7D65AA1A78F688E69A1EB098AB42E95C674E234173CD7E0925541AD5AE7CED9A3D12FDFE6EB8EA4F8AAD2629D4F5A18BA3DDCC9CF7F352A892D4BEBDC4A1303F9C683DACD51A237E34B045EBE579A381E26B40DCFBF49EFFA6F65D17F37C6DBA54AA99A65D5573D4EB5BA038E024910A4D36B79A1D4E3C70349DADFF08FD8B4DEE77FDB57F01CB276ED5E676F1EC973154F86
);
GO
Tworzenie klucza szyfrowania kolumny z dwiema wartościami
Poniższy przykład tworzy klucz szyfrowania kolumny o nazwie TwoValueCEK z dwiema wartościami.
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
Zobacz też
ALTER COLUMN ENCRYPTION KEY (Transact-SQL)
DROP COLUMN ENCRYPTION KEY (Transact-SQL)
CREATE COLUMN MASTER KEY (Transact-SQL)
sys.column_encryption_keys (Transact-SQL)
sys.column_encryption_key_values (Transact-SQL)
sys.columns (Transact-SQL)
Zawsze szyfrowane
Ciągłe Szyfrowanie z bezpiecznymi enklawami
Omówienie zarządzania kluczami dla funkcji Always Encrypted
Zarządzanie kluczami dla funkcji Always Encrypted przy użyciu bezpiecznych enklaw