Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-databas i Microsoft Fabric
Skapar en asymmetrisk nyckel i databasen.
Den här funktionen är inte kompatibel med databasexport med hjälp av Data Tier Application Framework (DACFx). Du måste släppa alla asymmetriska nycklar innan du exporterar.
Transact-SQL syntaxkonventioner
Anmärkning
Den här syntaxen stöds inte av en serverlös SQL-pool i Azure Synapse Analytics.
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'
Argumentpunkter
asym_key_name
Är namnet på den asymmetriska nyckeln i databasen. Asymmetriska nyckelnamn måste följa reglerna för identifierare och måste vara unika i databasen.
AUKTORISERING database_principal_name
Anger ägaren till den asymmetriska nyckeln. Ägaren kan inte vara en roll eller en grupp. Om det här alternativet utelämnas blir ägaren den aktuella användaren.
FRÅN asym_key_source
Anger källan som det asymmetriska nyckelparet ska läsas in från.
FILE = "path_to_strong-name_file"
Anger sökvägen till en stark namnfil som nyckelparet ska läsas in från. Begränsas till 260 tecken av MAX_PATH från Windows-API:et.
Anmärkning
Det här alternativet är inte tillgängligt i en innesluten databas.
KÖRBAR FIL = "path_to_executable_file"
Anger sökvägen till en sammansättningsfil som den offentliga nyckeln ska läsas in från. Begränsas till 260 tecken av MAX_PATH från Windows-API:et.
Anmärkning
Det här alternativet är inte tillgängligt i en innesluten databas.
SAMMANSÄTTNING assembly_name
Anger namnet på en signerad sammansättning som redan har lästs in i databasen som den offentliga nyckeln ska läsas in från.
LEVERANTÖRENS provider_name
Anger namnet på en EKM-provider (Extensible Key Management). Providern måste definieras först med create provider-instruktionen. Mer information om hantering av externa nycklar finns i Extensible Key Management (EKM).
ALGORITHM = <algoritm>
Fem algoritmer kan tillhandahållas. RSA_4096, RSA_3072, RSA_2048, RSA_1024 och RSA_512.
RSA_1024 och RSA_512 är inaktuella. Om du vill använda RSA_1024 eller RSA_512 (rekommenderas inte) måste du ange databasen till databaskompatibilitetsnivå 120 eller lägre.
Från och med SQL Server 2022 (16.x) stöds RSA-HSM_2048 och RSA-HSM_3072.
PROVIDER_KEY_NAME = "key_name_in_provider"
Anger nyckelnamnet från den externa providern.
CREATION_DISPOSITION = CREATE_NEW
Skapar en ny nyckel på den utökningsbara nyckelhanteringsenheten. PROVIDER_KEY_NAME måste användas för att ange nyckelnamn på enheten. Om det redan finns en nyckel på enheten misslyckas -instruktionen med ett fel.
CREATION_DISPOSITION = OPEN_EXISTING
Mappar en asymmetrisk SQL Server-nyckel till en befintlig utökningsbar nyckelhanteringsnyckel. PROVIDER_KEY_NAME måste användas för att ange nyckelnamn på enheten. Om CREATION_DISPOSITION = OPEN_EXISTING inte anges är standardvärdet CREATE_NEW.
KRYPTERING EFTER LÖSENORD = "lösenord"
Anger det lösenord som den privata nyckeln ska krypteras med. Om den här satsen inte finns krypteras den privata nyckeln med databashuvudnyckeln.
lösenordet är högst 128 tecken.
lösenordet måste uppfylla kraven för Windows-lösenordsprinciper för den dator som kör instansen av SQL Server.
Anmärkningar
En asymmetrisk nyckel är en säker entitet på databasnivå. I standardformuläret innehåller den här entiteten både en offentlig nyckel och en privat nyckel. När den körs utan FROM-satsen genererar CREATE ASYMMETRIC KEY ett nytt nyckelpar. När den körs med FROM-satsen importerar CREATE ASYMMETRIC KEY ett nyckelpar från en fil eller importerar en offentlig nyckel från en sammansättning eller DLL-fil.
Som standard skyddas den privata nyckeln av databashuvudnyckeln. Om ingen databashuvudnyckel har skapats krävs ett lösenord för att skydda den privata nyckeln.
Den privata nyckeln kan vara 512, 1024 eller 2 048 bitar lång.
Asymmetriska nycklar som används för TDE är begränsade till en privat nyckelstorlek på 3 072 bitar.
Behörigheter
Kräver CREATE ASYMMETRIC KEY-behörighet för databasen. Om auktoriseringssatsen har angetts, krävs IMPERSONATE-behörighet för databasens huvudnamn eller ALTER-behörighet för programrollen. Endast Windows-inloggningar, SQL Server-inloggningar och programroller kan äga asymmetriska nycklar. Grupper och roller kan inte äga asymmetriska nycklar.
Exempel
A. Skapa en asymmetrisk nyckel
I följande exempel skapas en asymmetrisk nyckel med namnet PacificSales09
med hjälp av algoritmen RSA_2048
och den privata nyckeln skyddas med ett lösenord.
CREATE ASYMMETRIC KEY PacificSales09
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
GO
B. Skapa en asymmetrisk nyckel från en fil, ge auktorisering till en användare
I följande exempel skapas den asymmetriska nyckeln PacificSales19
från ett nyckelpar som lagras i en fil och tilldelar ägarskapet för den asymmetriska nyckeln till användaren Christina
. Den privata nyckeln skyddas av databasens huvudnyckel, som måste skapas innan den asymmetriska nyckeln skapas.
CREATE ASYMMETRIC KEY PacificSales19
AUTHORIZATION Christina
FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp';
GO
C. Skapa en asymmetrisk nyckel från en EKM-provider
I följande exempel skapas den asymmetriska nyckeln EKM_askey1
från ett nyckelpar som lagras i en Extensible Key Management-provider med namnet EKM_Provider1
och en nyckel på providern som heter 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
Se även
ÄNDRA ASYMMETRISK NYCKEL (Transact-SQL)
SLÄPP ASYMMETRISK NYCKEL (Transact-SQL)
ASYMKEYPROPERTY (Transact-SQL)
ASYMKEY_ID (Transact-SQL)
Välj en krypteringsalgoritm
Krypteringshierarki
Utökningsbar nyckelhantering med Azure Key Vault (SQL Server)