Megosztás a következőn keresztül:


ASZIMMETRIKUS KULCS LÉTREHOZÁSA (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.

ENGEDÉLYEZÉSI 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.

GYŰLÉS 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 a FROM záradék nélkül hajtja végre, a CREATE ASYMMETRIC KEY létrehoz egy új kulcspárt. A FROM záradékkal végrehajtott CREATE ASYMMETRIC KEY egy kulcspárt importál egy fájlból, vagy importál egy nyilvános kulcsot egy szerelvényből 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

A CREATE ASZIMMETRIKUS KULCS engedélyre van szükség az adatbázisban. Ha az ENGEDÉLYEZÉSI záradék meg van adva, impERSONATE engedélyt igényel az adatbázisnéven, vagy alter engedélyt az alkalmazásszerepkörhöz. 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 = '<enterStrongPasswordHere>';   
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  

Lásd még:

ALTER ASZIMMETRIKUS KULCS (Transact-SQL)
DROP ASZIMMETRIKUS KULCS (Transact-SQL)
ASYMKEYPROPERTY (Transact-SQL)
ASYMKEY_ID (Transact-SQL)
Titkosítási algoritmus kiválasztása
Titkosítási hierarchia
Bővíthető kulcskezelés az Azure Key Vault (SQL Server)