Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
sql database v Microsoft Fabric
Vygeneruje symetrický klíč a určuje jeho vlastnosti v SQL Serveru.
Tato funkce není kompatibilní s exportem databáze pomocí rozhraní DACFx (Data Tier Application Framework). Před exportem musíte všechny symetrické klíče odstranit.
Note
Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
Syntax
CREATE SYMMETRIC KEY key_name
[ AUTHORIZATION owner_name ]
[ FROM PROVIDER provider_name ]
WITH
[
<key_options> [ , ... n ]
| ENCRYPTION BY <encrypting_mechanism> [ , ... n ]
]
<key_options> ::=
KEY_SOURCE = 'pass_phrase'
| ALGORITHM = <algorithm>
| IDENTITY_VALUE = 'identity_phrase'
| PROVIDER_KEY_NAME = 'key_name_in_provider'
| CREATION_DISPOSITION = { CREATE_NEW | OPEN_EXISTING }
<algorithm> ::=
DES | TRIPLE_DES | TRIPLE_DES_3KEY | RC2 | RC4 | RC4_128
| DESX | AES_128 | AES_192 | AES_256
<encrypting_mechanism> ::=
CERTIFICATE certificate_name
| PASSWORD = 'password'
| SYMMETRIC KEY symmetric_key_name
| ASYMMETRIC KEY asym_key_name
Arguments
key_name
Určuje jedinečný název, pomocí kterého je symetrický klíč v databázi znám. Jedná se o povinný parametr. Dočasné klíče jsou určeny, když key_name začíná symbolem jednoho čísla (#). Například: #temporaryKey900007. Nemůžete vytvořit symetrický klíč, který má název začínající více než jedním #. Pomocí zprostředkovatele EKM nemůžete vytvořit dočasný symetrický klíč.
OWNER_NAME AUTORIZACE
Určuje název role uživatele databáze nebo aplikace, která tento klíč vlastní.
OD POSKYTOVATELE provider_name
Určuje zprostředkovatele a název EKM (Extensible Key Management). Klíč se neexportuje ze zařízení EKM. Zprostředkovatel musí být definován jako první pomocí CREATE PROVIDER příkazu. Další informace o vytváření externích zprostředkovatelů klíčů najdete v tématu Rozšiřitelná správa klíčů (EKM).
Note
Tato možnost není dostupná v databázi s omezením.
KEY_SOURCE = 'pass_phrase'
Určuje přístupové heslo, ze kterého se má klíč odvodit.
IDENTITY_VALUE = 'identity_phrase'
Určuje frázi identity, ze které se má vygenerovat identifikátor GUID pro označování dat šifrovaných pomocí dočasného klíče.
PROVIDER_KEY_NAME = 'key_name_in_provider'
Určuje název odkazovaný ve zprostředkovateli Extensible Key Management.
Note
Tato možnost není dostupná v databázi s omezením.
CREATION_DISPOSITION = { CREATE_NEW | OPEN_EXISTING }
Vytvoří nebo mapuje symetrický klíč na zařízení Extensible Key Management.
CREATE_NEWVytvoří nový klíč na zařízení Extensible Key Management. Pokud už klíč v zařízení existuje, příkaz selže s chybou.
OPEN_EXISTINGMapuje symetrický klíč SQL Serveru na existující klíč Extensible Key Management. Pokud
CREATION_DISPOSITION = OPEN_EXISTINGnení zadaný, výchozí hodnota jeCREATE_NEW.
certificate_name
Určuje název certifikátu, který se používá k šifrování symetrického klíče. Certifikát již musí existovat v databázi.
'password'
Určuje heslo, ze kterého se má odvodit klíč TRIPLE_DES, pomocí kterého se má symetrický klíč zabezpečit.
password musí splňovat požadavky na zásady hesel systému Windows počítače, na kterém je spuštěna instance SYSTÉMU SQL Server. Vždy používejte silná hesla.
symmetric_key_name
Určuje symetrický klíč, který slouží k šifrování vytvářeného klíče. Zadaný klíč již musí existovat v databázi a klíč musí být otevřený.
asym_key_name
Určuje asymetrický klíč, který slouží k šifrování vytvářeného klíče. Tento asymetrický klíč už musí v databázi existovat.
<algoritmus>
Zadejte algoritmus šifrování.
Warning
Počínaje SQL Serverem 2016 (13.x) jsou všechny algoritmy kromě AES_128, AES_192 a AES_256 zastaralé. Pokud chcete použít starší algoritmy (nedoporučuje se), musíte databázi nastavit na úroveň kompatibility databáze 120 nebo nižší.
Remarks
Při vytvoření symetrického klíče musí být symetrický klíč zašifrován alespoň jednou z následujících možností:
- certifikát
- heslo
- symetrický klíč
- asymetrický klíč
- PROVIDER
Klíč může mít více než jedno šifrování každého typu. Jinými slovy, jeden symetrický klíč je možné zašifrovat pomocí více certifikátů, hesel, symetrických klíčů a asymetrických klíčů současně.
Pokud chcete chránit materiál klíče symetrického klíče, SQL Server a Azure SQL uloží materiál klíče v šifrované podobě. V minulosti toto šifrování využívalo režim odsazení PKCS#1 v1.5; počínaje úrovní kompatibility databáze 170 používá šifrování režim odsazení OAEP-256 pro šifrování pomocí certifikátu nebo asymetrického klíče. V dm_database_encryption_keys, encryptor_type bude zobrazen jako CERTIFICATE_OAEP_256 místo CERTIFICATE.
Caution
Pokud je symetrický klíč zašifrovaný heslem místo certifikátu (nebo jiného klíče), použije se k šifrování hesla algoritmus TRIPLE DES. Z tohoto důvodu jsou klíče vytvořené pomocí silného šifrovacího algoritmu, jako je AES, samy o sobě zabezpečeny slabším algoritmem.
Volitelné heslo lze použít k šifrování symetrického klíče před distribucí klíče více uživatelům.
Dočasné klíče vlastní uživatel, který je vytvoří. Dočasné klíče jsou platné pouze pro aktuální relaci.
IDENTITY_VALUE vygeneruje identifikátor GUID, pomocí kterého se označí data zašifrovaná pomocí nového symetrického klíče. Toto označování lze použít ke spárování klíčů s šifrovanými daty. Identifikátor GUID vygenerovaný konkrétní frází je vždy stejný. Po použití fráze k vygenerování identifikátoru GUID není možné frázi znovu použít, pokud v této databázi existuje alespoň jeden symetrický klíč, který tuto frázi aktivně používá.
IDENTITY_VALUE je volitelná klauzule; Pokud ale ukládáte data zašifrovaná pomocí dočasného klíče, doporučujeme ho použít.
Neexistuje žádný výchozí šifrovací algoritmus.
Important
K ochraně citlivých dat nedoporučujeme používat rc4 a RC4_128 šifry datových proudů. SQL Server dále nekóduje šifrování prováděné s těmito klíči.
Informace o symetrických klíčích jsou viditelné v zobrazení katalogu sys.symmetric_keys .
Symetrické klíče není možné šifrovat symetrickými klíči vytvořenými z poskytovatele šifrování.
Objasnění algoritmů DES
- DesX byl nesprávně pojmenován. Symetrické klíče vytvořené pomocí ALGORITMU = DESX ve skutečnosti používají šifru TRIPLE DES s 192bitovým klíčem. Algoritmus DESX není k dispozici. Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.
- Symetrické klíče vytvořené pomocí ALGORITMU = TRIPLE_DES_3KEY použít TRIPLE DES s 192bitovým klíčem.
- Symetrické klíče vytvořené pomocí ALGORITMU = TRIPLE_DES použít TRIPLE DES s 128bitovým klíčem.
Vyřazení algoritmu RC4
Opakované použití stejné rc4 nebo RC4_128 KEY_GUID na různých blocích dat vede ke stejnému klíči RC4, protože SQL Server neposkytuje sůl automaticky. Opakované použití stejného klíče RC4 je dobře známá chyba, která vede k velmi slabému šifrování. Proto jsme zastaralí klíčová slova RC4 a RC4_128. Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají.
Warning
Algoritmus RC4 je podporován pouze pro zpětnou kompatibilitu. Nový materiál lze šifrovat pouze pomocí RC4 nebo RC4_128, pokud je databáze v kompatibilitě 90 nebo 100. (Nedoporučuje se.) Místo toho použijte novější algoritmus, například jeden z algoritmů AES. V materiálech SQL Serveru zašifrovaných pomocí RC4 nebo RC4_128 je možné dešifrovat v jakékoli úrovni kompatibility.
Permissions
Vyžaduje oprávnění ALTER ANY SYMMETRIC KEY pro databázi. Pokud AUTHORIZATION je zadáno, vyžaduje oprávnění IMPERSONATE pro uživatele databáze nebo ALTER oprávnění k roli aplikace. Pokud je šifrování certifikátem nebo asymetrickým klíčem, vyžaduje oprávnění VIEW DEFINITION k certifikátu nebo asymetrickému klíči. Jen přihlášení systému Windows, přihlášení k SQL Serveru a aplikační role mohou být vlastníky symetrických klíčů. Skupiny a role nemohou vlastnit symetrické klíče.
Examples
A. Vytvoření symetrického klíče
Následující příklad vytvoří symetrický klíč volaný JanainaKey09 pomocí AES 256 algoritmu a pak zašifruje nový klíč pomocí certifikátu Shipping04.
CREATE SYMMETRIC KEY JanainaKey09
WITH ALGORITHM = AES_256
ENCRYPTION BY CERTIFICATE Shipping04;
GO
B. Vytvoření dočasného symetrického klíče
Následující příklad vytvoří dočasný symetrický klíč volaný #MarketingXXV z přístupového hesla: The square of the hypotenuse is equal to the sum of the squares of the sides. Klíč se zřídí pomocí identifikátoru GUID, který se vygeneruje z řetězce Pythagoras a zašifruje se certifikátem Marketing25.
CREATE SYMMETRIC KEY #MarketingXXV
WITH ALGORITHM = AES_128,
KEY_SOURCE
= 'The square of the hypotenuse is equal to the sum of the squares of the sides',
IDENTITY_VALUE = 'Pythagoras'
ENCRYPTION BY CERTIFICATE Marketing25;
GO
C. Vytvoření symetrického klíče pomocí zařízení EKM (Extensible Key Management)
Následující příklad vytvoří symetrický klíč volaný MySymKey pomocí zprostředkovatele volaného MyEKMProvider a název KeyForSensitiveDataklíče . Přiřazuje autorizaci User1 a předpokládá, že správce systému již zaregistroval zprostředkovatele volaný MyEKMProvider v SQL Serveru.
CREATE SYMMETRIC KEY MySymKey
AUTHORIZATION User1
FROM PROVIDER EKMProvider
WITH
PROVIDER_KEY_NAME='KeyForSensitiveData',
CREATION_DISPOSITION=OPEN_EXISTING;
GO