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
Vytvoří asymetrický klíč v databázi.
Tato funkce není kompatibilní s exportem databáze pomocí rozhraní DACFx (Data Tier Application Framework). Před exportem musíte všechny asymetrického klíče odstranit.
Poznámka:
Tato syntaxe není podporována bezserverovým fondem SQL ve službě Azure Synapse Analytics.
Syntaxe
CREATE ASYMMETRIC KEY asym_key_name
[ AUTHORIZATION database_principal_name ]
[ FROM <asym_key_source> ]
[ WITH <key_option> ]
[ ENCRYPTION BY <encrypting_mechanism> ]
[ ; ]
<asym_key_source>::=
FILE = 'path_to_strong-name_file'
| EXECUTABLE FILE = 'path_to_executable_file'
| ASSEMBLY assembly_name
| PROVIDER provider_name
<key_option> ::=
ALGORITHM = <algorithm>
|
PROVIDER_KEY_NAME = 'key_name_in_provider'
|
CREATION_DISPOSITION = { CREATE_NEW | OPEN_EXISTING }
<algorithm> ::=
{ RSA_4096 | RSA_3072 | RSA_2048 | RSA_1024 | RSA_512 }
<encrypting_mechanism> ::=
PASSWORD = 'password'
Argumenty
asym_key_name
Je název asymetrického klíče v databázi. Asymetrické názvy klíčů musí splňovat pravidla pro identifikátory a musí být jedinečné v rámci databáze.
DATABASE_PRINCIPAL_NAME AUTORIZACE
Určuje vlastníka asymetrického klíče. Vlastníkem nemůže být role ani skupina. Pokud tuto možnost vynecháte, vlastník bude aktuálním uživatelem.
OD asym_key_source
Určuje zdroj, ze kterého se má načíst asymetrický pár klíčů.
SOUBOR = 'path_to_strong-name_file'
Určuje cestu k souboru silného názvu, ze kterého se má načíst pár klíčů. Omezeno na 260 znaků MAX_PATH z rozhraní API systému Windows.
Poznámka:
Tato možnost není k dispozici v obsažené databázi.
SPUSTITELNÝ SOUBOR = 'path_to_executable_file'
Určuje cestu k souboru sestavení, ze kterého se má načíst veřejný klíč. Omezeno na 260 znaků MAX_PATH z rozhraní API systému Windows.
Poznámka:
Tato možnost není k dispozici v obsažené databázi.
ASSEMBLY_NAME SESTAVENÍ
Určuje název podepsaného sestavení, které již bylo načteno do databáze, ze které se má načíst veřejný klíč.
POSKYTOVATEL PROVIDER_NAME
Určuje název zprostředkovatele EKM (Extensible Key Management). Zprostředkovatel musí být definován jako první pomocí příkazu CREATE PROVIDER. Další informace o správě externích klíčů najdete v tématu Rozšiřitelná správa klíčů (EKM).
ALGORITMUS = <algoritmus>
Lze poskytnout pět algoritmů; RSA_4096, RSA_3072, RSA_2048, RSA_1024 a RSA_512.
RSA_1024 a RSA_512 jsou zastaralé. Pokud chcete použít RSA_1024 nebo RSA_512 (nedoporučuje se), musíte databázi nastavit na úroveň kompatibility databáze 120 nebo nižší.
Počínaje SQL Serverem 2022 (16.x) se podporují RSA-HSM_2048 a RSA-HSM_3072.
PROVIDER_KEY_NAME = 'key_name_in_provider'
Určuje název klíče od externího zprostředkovatele.
CREATION_DISPOSITION = CREATE_NEW
Vytvoří nový klíč na zařízení Extensible Key Management. PROVIDER_KEY_NAME se musí použít k zadání názvu klíče v zařízení. Pokud klíč na zařízení již existuje, příkaz selže s chybou.
CREATION_DISPOSITION = OPEN_EXISTING
Mapuje asymetrický klíč SQL Serveru na existující klíč extensible Key Management. PROVIDER_KEY_NAME se musí použít k zadání názvu klíče v zařízení. Pokud není zadaný CREATION_DISPOSITION = OPEN_EXISTING, výchozí hodnota je CREATE_NEW.
ŠIFROVÁNÍ HESLEM = 'heslo'
Určuje heslo, pomocí kterého se má privátní klíč šifrovat. Pokud tato klauzule neexistuje, privátní klíč se zašifruje pomocí hlavního klíče databáze.
heslo je maximálně 128 znaků.
Heslo 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.
Poznámky
Asymetrický klíč je zabezpečitelná entita na úrovni databáze. Ve výchozím formuláři tato entita obsahuje veřejný klíč i privátní klíč. Při spuštění bez klauzule FROM vygeneruje funkce CREATE ASYMMETRIC KEY novou dvojici klíčů. Při spuštění pomocí klauzule FROM importuje funkce CREATE ASYMMETRIC KEY dvojici klíčů ze souboru nebo importuje veřejný klíč ze sestavení nebo souboru KNIHOVNY DLL.
Ve výchozím nastavení je privátní klíč chráněn hlavním klíčem databáze. Pokud nebyl vytvořen žádný hlavní klíč databáze, je k ochraně privátního klíče vyžadováno heslo.
Privátní klíč může mít délku 512, 1024 nebo 2048 bitů.
Asymetrické klíče používané pro transparentní šifrování dat jsou omezené na velikost privátního klíče 3072 bitů.
Povolení
Vyžaduje oprávnění CREATE ASYMMETRIC KEY pro databázi. Pokud je zadaná klauzule AUTHORIZATION, vyžaduje oprávnění IMPERSONATE k instančnímu objektu databáze nebo oprávnění ALTER pro roli aplikace. Asymetrické klíče můžou vlastnit pouze přihlášení systému Windows, přihlášení k SQL Serveru a aplikační role. Skupiny a role nemohou vlastnit asymetrického klíče.
Příklady
A. Vytvoření asymetrického klíče
Následující příklad vytvoří asymetrický klíč pojmenovaný PacificSales09
pomocí RSA_2048
algoritmu a chrání privátní klíč heslem.
CREATE ASYMMETRIC KEY PacificSales09
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
GO
B. Vytvoření asymetrického klíče ze souboru, který uživateli uděluje autorizaci
Následující příklad vytvoří asymetrický klíč PacificSales19
z dvojice klíčů uložené v souboru a přiřadí vlastnictví asymetrického klíče uživateli Christina
. Privátní klíč je chráněn hlavním klíčem databáze, který je potřeba vytvořit před vytvořením asymetrického klíče.
CREATE ASYMMETRIC KEY PacificSales19
AUTHORIZATION Christina
FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp';
GO
C. Vytvoření asymetrického klíče od zprostředkovatele EKM
Následující příklad vytvoří asymetrický klíč EKM_askey1
z dvojice klíčů uložené ve zprostředkovateli Extensible Key Management volal EKM_Provider1
a klíč na tomto zprostředkovateli volal key10_user1
.
CREATE ASYMMETRIC KEY EKM_askey1
FROM PROVIDER EKM_Provider1
WITH
ALGORITHM = RSA_2048,
CREATION_DISPOSITION = CREATE_NEW
, PROVIDER_KEY_NAME = 'key10_user1' ;
GO
Viz také
ZMĚNIT ASYMETRICKÝ KLÍČ (Transact-SQL)
PŘETÁHNĚTE ASYMETRICKÝ KLÍČ (Transact-SQL)
ASYMKEYVLASTNOST (Transact-SQL)
ASYMKEY_ID (Transact-SQL)
Volba šifrovacího algoritmu
Hierarchie Šifrování
rozšiřitelné správy klíčů pomocí služby Azure Key Vault (SQL Server)