CREATE ASYMMETRIC KEY (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-adatbázis a Microsoft Fabricben

Létrehoz egy aszimmetrikus kulcsot az adatbázisban.

Ez a funkció nem kompatibilis az adatbázis-exportálással a Data Tier Application Framework (DACFx) használatával. Exportálás előtt el kell dobnia az összes aszimmetrikus kulcsot.

Transact-SQL szintaxis konvenciók

Note

Ezt a szintaxist az Azure Synapse Analytics kiszolgáló nélküli SQL-készlete nem támogatja.

Syntax

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'   

Arguments

asym_key_name
Az adatbázis aszimmetrikus kulcsának neve. Az aszimmetrikus kulcsneveknek meg kell felelniük az azonosítókra vonatkozó szabályoknak, és egyedinek kell lenniük az adatbázisban.

AUTHORIZATION database_principal_name
Megadja az aszimmetrikus kulcs tulajdonosát. A tulajdonos nem lehet szerepkör vagy csoport. Ha ez a beállítás nincs megadva, a tulajdonos lesz az aktuális felhasználó.

A asym_key_source
Az aszimmetrikus kulcspár betöltésének forrását adja meg.

FILE = "path_to_strong-name_file"
Egy erős névvel rendelkező fájl elérési útját adja meg, amelyből betölti a kulcspárt. Legfeljebb 260 karaktert MAX_PATH a Windows API-ból.

Note

Ez a beállítás nem érhető el egy tartalmazott adatbázisban.

VÉGREHAJTHATÓ FÁJL = "path_to_executable_file"
Megadja annak a szerelvényfájlnak az elérési útját, amelyből betölti a nyilvános kulcsot. Legfeljebb 260 karaktert MAX_PATH a Windows API-ból.

Note

Ez a beállítás nem érhető el egy tartalmazott adatbázisban.

ASSEMBLY assembly_name
Megadja annak az aláírt szerelvénynek a nevét, amely már be lett töltve abba az adatbázisba, amelyből betölti a nyilvános kulcsot.

SZOLGÁLTATÓ provider_name
Megadja az Extensible Key Management (EKM) szolgáltató nevét. A szolgáltatót először a CREATE PROVIDER utasítással kell definiálni. A külső kulcskezelésről további információt az Extensible Key Management (EKM) című témakörben talál.

ALGORITMUS = <algoritmus>
Öt algoritmus adható meg; RSA_4096, RSA_3072, RSA_2048, RSA_1024 és RSA_512.

RSA_1024 és RSA_512 elavultak. A RSA_1024 vagy RSA_512 használatához (nem ajánlott) az adatbázist 120-es vagy annál alacsonyabb adatbázis-kompatibilitási szintre kell állítania.

Az SQL Server 2022-től (16.x) kezdődően a RSA-HSM_2048 és a RSA-HSM_3072 támogatottak.

PROVIDER_KEY_NAME = "key_name_in_provider"
Megadja a külső szolgáltató kulcsnevét.

CREATION_DISPOSITION = CREATE_NEW
Új kulcsot hoz létre az Bővíthető kulcskezelő eszközön. PROVIDER_KEY_NAME kell használni az eszköz kulcsnevének megadásához. Ha már létezik kulcs az eszközön, az utasítás hibával meghiúsul.

CREATION_DISPOSITION = OPEN_EXISTING
Az SQL Server aszimmetrikus kulcsát egy meglévő bővíthető kulcskezelési kulcshoz rendeli. PROVIDER_KEY_NAME kell használni az eszköz kulcsnevének megadásához. Ha CREATION_DISPOSITION = OPEN_EXISTING nincs megadva, az alapértelmezett érték CREATE_NEW.

TITKOSÍTÁS JELSZÓ ALAPJÁN = "jelszó"
Megadja azt a jelszót, amellyel titkosítani szeretné a titkos kulcsot. Ha ez a záradék nincs megadva, a titkos kulcs az adatbázis főkulcsával lesz titkosítva. a jelszó legfeljebb 128 karakter hosszúságú lehet. a jelszónak meg kell felelnie az SQL Server-példányt futtató számítógép Windows jelszóházirend-követelményeinek.

Remarks

Az aszimmetrikus kulcs egy biztonságos entitás az adatbázis szintjén. Az entitás alapértelmezett formájában egy nyilvános és egy titkos kulcsot is tartalmaz. Ha FROM klauzula nélkül hajtják végre, CREATE ASYMMETRIC KEY új kulcspárt generál. A FROM záradékzal CREATE ASYMMETRIC KEY történő végrehajtáskor kulcspárt importál egy fájlból, vagy egy nyilvános kulcsot importál egy assembly vagy DLL fájlból.

Alapértelmezés szerint a titkos kulcsot az adatbázis főkulcsa védi. Ha nem jött létre adatbázis-főkulcs, jelszó szükséges a titkos kulcs védelméhez.

A titkos kulcs 512, 1024 vagy 2048 bites lehet.

A TDE-hez használt aszimmetrikus kulcsok 3072 bites titkos kulcsméretre korlátozódnak.

Permissions

Az adatbázishoz CREATE ASYMMETRIC KEY engedély szükséges. Ha a AUTHORIZATION záradék meg van megadva, az IMPERSONATE engedélyt követel az adatbázis alapítóján, vagy ALTER engedélyt az alkalmazás szerepére. Csak Windows-bejelentkezések, SQL Server-bejelentkezések és alkalmazásszerepkörök rendelkezhetnek aszimmetrikus kulcsokkal. A csoportok és szerepkörök nem birtokolhatók aszimmetrikus kulcsokkal.

Examples

A. Aszimmetrikus kulcs létrehozása

Az alábbi példa létrehoz egy aszimmetrikus kulcsot az PacificSales09 algoritmus használatával, RSA_2048 és jelszóval védi a titkos kulcsot.

CREATE ASYMMETRIC KEY PacificSales09   
    WITH ALGORITHM = RSA_2048   
    ENCRYPTION BY PASSWORD = '<password>';
GO  

B. Aszimmetrikus kulcs létrehozása fájlból, engedélyezés a felhasználó számára

Az alábbi példa egy fájlban tárolt kulcspárból hozza létre az aszimmetrikus kulcsot PacificSales19 , és hozzárendeli az aszimmetrikus kulcs tulajdonjogát a felhasználóhoz Christina. A titkos kulcsot az adatbázis főkulcsa védi, amelyet az aszimmetrikus kulcs létrehozása előtt kell létrehozni.

CREATE ASYMMETRIC KEY PacificSales19  
    AUTHORIZATION Christina  
    FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp';  
GO  

C. Aszimmetrikus kulcs létrehozása EKM-szolgáltatóból

Az alábbi példa egy bővíthető kulcskezelő szolgáltatóban EKM_askey1tárolt kulcspárból hozza létre az aszimmetrikus kulcsotEKM_Provider1, és egy kulcsot az adott szolgáltatónkey10_user1.

CREATE ASYMMETRIC KEY EKM_askey1   
    FROM PROVIDER EKM_Provider1  
    WITH   
        ALGORITHM = RSA_2048,   
        CREATION_DISPOSITION = CREATE_NEW  
        , PROVIDER_KEY_NAME  = 'key10_user1' ;  
GO