Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
A következőkre vonatkozik:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL-adatbázis a Microsoft Fabricben
Tanúsítványt ad hozzá egy SQL Server-adatbázishoz.
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 tanúsítványt.
Note
Az SQL Server 2022 -ben (16.x) a titkos kulcsokkal rendelkező tanúsítványok biztonsági mentésére vagy visszaállítására közvetlenül a nyilvános kulcspárok (PKCS) #12 vagy a személyes adatcsere (PFX) formátumának használatával lehet közvetlenül a fájlokból vagy bináris blobokból. Minden rendszer által létrehozott tanúsítvány minimális RSA-3072 erősségű az SQL Server 2022-ben (16.x).
A PKCS #12 vagy PFX formátum bináris formátum a kiszolgálótanúsítvány, a köztes tanúsítványok és a titkos kulcs tárolására egy fájlban. A PFX-fájlok általában olyan bővítményekkel rendelkeznek, mint a .pfx ..p12 Ez megkönnyíti az ügyfelek számára az RC4 titkosítást tiltó biztonsági ajánlott eljárásokra vonatkozó irányelvek és megfelelőségi szabványok betartását azáltal, hogy szükségtelenné teszi az olyan konverziós eszközök használatát, mint a PVKConverter (a PVK vagy a DER formátum esetében).
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
-- Syntax for SQL Server and Azure SQL Database
CREATE CERTIFICATE certificate_name [ AUTHORIZATION user_name ]
{ FROM <existing_keys> | <generate_new_keys> }
[ ACTIVE FOR BEGIN_DIALOG = { ON | OFF } ]
<existing_keys> ::=
ASSEMBLY assembly_name
| {
[ EXECUTABLE ] FILE = 'path_to_file'
[ WITH [FORMAT = 'PFX',]
PRIVATE KEY ( <private_key_options> ) ]
}
| {
BINARY = asn_encoded_certificate
[ WITH PRIVATE KEY ( <private_key_options> ) ]
}
<generate_new_keys> ::=
[ ENCRYPTION BY PASSWORD = 'password' ]
WITH SUBJECT = 'certificate_subject_name'
[ , <date_options> [ ,...n ] ]
<private_key_options> ::=
{
FILE = 'path_to_private_key'
[ , DECRYPTION BY PASSWORD = 'password' ]
[ , ENCRYPTION BY PASSWORD = 'password' ]
}
|
{
BINARY = private_key_bits
[ , DECRYPTION BY PASSWORD = 'password' ]
[ , ENCRYPTION BY PASSWORD = 'password' ]
}
<date_options> ::=
START_DATE = 'datetime' | EXPIRY_DATE = 'datetime'
-- Syntax for Parallel Data Warehouse
CREATE CERTIFICATE certificate_name
{ <generate_new_keys> | FROM <existing_keys> }
[ ; ]
<generate_new_keys> ::=
WITH SUBJECT = 'certificate_subject_name'
[ , <date_options> [ ,...n ] ]
<existing_keys> ::=
{
FILE ='path_to_file'
WITH PRIVATE KEY
(
FILE = 'path_to_private_key'
, DECRYPTION BY PASSWORD ='password'
)
}
<date_options> ::=
START_DATE ='datetime' | EXPIRY_DATE ='datetime'
Arguments
certificate_name
Az adatbázis tanúsítványának neve.
ENGEDÉLYEZÉSI user_name
Annak a felhasználónak a neve, aki a tanúsítvány tulajdonosa.
GYŰLÉS assembly_name
Az adatbázisba már betöltött aláírt szerelvényt adja meg.
[ VÉGREHAJTHATÓ ] FILE = "path_to_file"
Megadja a tanúsítványt tartalmazó DER-kódolt fájl teljes elérési útját, beleértve a fájlnevet is. Ha a VÉGREHAJTHATÓ beállítást használja, a fájl egy DLL, amelyet a tanúsítvány aláírt.
path_to_file lehet egy hálózati hely helyi elérési útja vagy UNC elérési útja. A fájl az SQL Server szolgáltatásfiók biztonsági környezetében érhető el. Ennek a fióknak rendelkeznie kell a szükséges fájlrendszer-engedélyekkel.
Important
Az Azure SQL Database nem támogatja a tanúsítvány fájlból vagy titkos kulcsfájlok használatával történő létrehozását.
BINÁRIS = asn_encoded_certificate
Bináris állandóként megadott ASN-kódolt tanúsítványbájtok.
A következővonatkozik: SQL Server 2012 (11.x) és újabb.
FORMÁTUMMAL = 'PFX'
A következőkre vonatkozik: SQL Server 2022 (16.x) és újabb verziók
A TANÚSÍTVÁNY PFX-fájlból való generálásának megadása. Ez a záradék nem kötelező.
TITKOS KULCCSAL
Megadja, hogy a tanúsítvány titkos kulcsa be legyen töltve az SQL Serverbe. Ez a záradék érvénytelen, ha a tanúsítvány szerelvényből jön létre. A szerelvényből létrehozott tanúsítvány titkos kulcsának betöltéséhez használja az ALTER CERTIFICATE parancsot.
FILE ='path_to_private_key'
Megadja a titkos kulcs teljes elérési útját, beleértve a fájlnevet is.
path_to_private_key lehet egy hálózati hely helyi elérési útja vagy UNC elérési útja. A fájl az SQL Server szolgáltatásfiók biztonsági környezetében érhető el. Ennek a fióknak rendelkeznie kell a szükséges fájlrendszer-engedélyekkel.
Important
Ez a lehetőség nem érhető el egy tárolt adatbázisban vagy az Azure SQL Database-ben.
BINÁRIS = private_key_bits
A következőkre vonatkozik: SQL Server (SQL Server 2012 (11.x)) és Azure SQL Database.
Bináris állandóként megadott titkoskulcs-bitek. Ezek a bitek titkosított formában is lehetnek. Titkosítás esetén a felhasználónak meg kell adnia egy visszafejtési jelszót. A jelszóházirend-ellenőrzések nem ezen a jelszón lesznek végrehajtva. A titkos kulcs bitjeinek PVK fájlformátumban kell lenniük.
VISSZAFEJTÉS JELSZÓ ALAPJÁN = "key_password"
Megadja a fájlból lekért titkos kulcs visszafejtéséhez szükséges jelszót. Ez a záradék nem kötelező, ha a titkos kulcsot null jelszó védi. A titkos kulcsok jelszóvédelem nélküli mentése nem ajánlott. Ha jelszóra van szükség, de nincs megadva jelszó, az utasítás meghiúsul.
TITKOSÍTÁS JELSZÓ ALAPJÁN = "jelszó"
Megadja a titkos kulcs titkosításához használt jelszót. Ezt a lehetőséget csak akkor használja, ha jelszóval szeretné titkosítani a tanúsítványt. Ha ez a záradék nincs megadva, a titkos kulcs titkosítása az adatbázis főkulcsával történik.
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. További információ: Jelszóházirend.
SUBJECT = "certificate_subject_name"
A tárgy kifejezés a tanúsítvány metaadatainak egy mezőjére hivatkozik az X.509 szabványban meghatározottak szerint. A tárgy legfeljebb 64 karakter hosszúságú lehet, és ez a korlát a Linuxon futó SQL Server esetében érvényes. Windows SQL Server esetén a tárgy legfeljebb 128 karakter hosszú lehet. A katalógusban tárolt 128 karakternél hosszabb témákat csonkolja a rendszer, de a tanúsítványt tartalmazó bináris nagyméretű objektum (BLOB) megtartja a teljes tulajdonosnevet.
START_DATE = "datetime"
A tanúsítvány érvényességének dátuma. Ha nincs megadva, a START_DATE az aktuális dátummal egyenlő. START_DATE UTC-ben van megadva, és bármilyen formátumban megadható, amely dátummá és idővé alakítható.
EXPIRY_DATE = "datetime"
A tanúsítvány lejáratának dátuma. Ha nincs megadva, EXPIRY_DATE egy évvel a START_DATE után lesz beállítva. EXPIRY_DATE UTC-időpontban van megadva, és bármilyen formátumban megadható, amely dátummá és idővé alakítható. Az SQL Server Service Broker ellenőrzi a lejárati dátumot. A tanúsítványok használatával végzett titkosítással végzett biztonsági mentés a lejárati dátumot is ellenőrzi, és nem engedélyezi az új biztonsági másolat létrehozását lejárt tanúsítvánnyal, de engedélyezi a lejárt tanúsítvánnyal rendelkező visszaállításokat. A lejárat azonban nem érvényes, ha a tanúsítványt adatbázis-titkosításhoz vagy Always Encryptedhez használják.
ACTIVE FOR BEGIN_DIALOG = { ON | KI }
Elérhetővé teszi a tanúsítványt a Service Broker párbeszédpanel-beszélgetés kezdeményezője számára. Az alapértelmezett érték be van kapcsolva.
Remarks
A tanúsítvány egy adatbázisszintű biztonságos, amely az X.509 szabványt követi, és támogatja az X.509 V1 mezőket.
CREATE CERTIFICATE A tanúsítvány fájlból, bináris állandóból vagy szerelvényből tölthető be. Ez az utasítás kulcspárt is létrehozhat, és önaláírt tanúsítványt is létrehozhat.
A titkos kulcsnak 2500 bájtnak kell lennie <titkosított formátumban. Az SQL Server által létrehozott titkos kulcsok 1024 bit hosszúak az SQL Server 2014-től (12.x) és 2048 bitesek az SQL Server 2016-tól kezdve (13.x). A külső forrásból importált titkos kulcsok minimális hossza 384 bit, maximális hossza 4096 bit. Az importált titkos kulcs hosszának 64 bites egész számnak kell lennie. A TDE-hez használt tanúsítványok 3456 bites titkos kulcsméretre korlátozódnak.
A rendszer a tanúsítvány teljes sorozatszámát tárolja, de csak az első 16 bájt jelenik meg a sys.certificates katalógusnézetben.
A rendszer a tanúsítvány teljes Kiállító mezőjét tárolja, de csak az első 884 bájtot a sys.certificates katalógusnézetben.
A titkos kulcsnak meg kell felelnie a certificate_name által megadott nyilvános kulcsnak.
Amikor tanúsítványt hoz létre egy tárolóból, a titkos kulcs betöltése nem kötelező. Ha azonban az SQL Server létrehoz egy önaláírt tanúsítványt, a titkos kulcs mindig létrejön. Alapértelmezés szerint a titkos kulcs titkosítása az adatbázis főkulcsával történik. Ha az adatbázis főkulcsa nem létezik, és nincs megadva jelszó, az utasítás meghiúsul.
A ENCRYPTION BY PASSWORD beállítás nem szükséges, ha a titkos kulcs az adatbázis fő kulccsal van titkosítva. Ezt a lehetőséget csak akkor használja, ha a titkos kulcs jelszóval van titkosítva. Ha nincs megadva jelszó, a tanúsítvány titkos kulcsa az adatbázis főkulcsával lesz titkosítva. Ha az adatbázis főkulcsa nem nyitható meg, a záradék kihagyása hibát okoz.
Nem kell visszafejtési jelszót megadnia, ha a titkos kulcs az adatbázis főkulcsával van titkosítva.
Note
A titkosításhoz és aláíráshoz használt beépített függvények nem ellenőrzik a tanúsítványok lejárati dátumát. A függvények felhasználóinak el kell dönteniük, hogy mikor ellenőrzik a tanúsítvány lejáratát.
A tanúsítvány bináris leírása a CERTENCODED (Transact-SQL) és a CERTPRIVATEKEY (Transact-SQL) függvény használatával hozható létre. Ha például a TANÚSÍTVÁNYTPRIVATEKEY és a CERTENCODED használatával másolni szeretne egy tanúsítványt egy másik adatbázisba, tekintse meg a B példát a CERTENCODED (Transact-SQL) című cikkben.
Az MD2, MD4, MD5, SHA és SHA1 algoritmusok elavultak az SQL Server 2016-ban (13.x). Az SQL Server 2016-ig (13.x) önaláírt tanúsítvány jön létre az SHA1 használatával. Az SQL Server 2017 -től kezdve (14.x) önaláírt tanúsítvány jön létre SHA2_256 használatával.
Permissions
Az adatbázishoz CREATE CERTIFICATE engedély szükséges. Csak Windows-bejelentkezések, SQL Server-bejelentkezések és alkalmazásszerepkörök birtokolhatnak tanúsítványokat. A csoportok és szerepkörök nem birtokolhatnak tanúsítványokat.
Examples
A. Önaláírt tanúsítvány létrehozása
Az alábbi példa létrehoz egy tanúsítványt.Shipping04 A tanúsítvány titkos kulcsa jelszóval védett.
CREATE CERTIFICATE Shipping04
ENCRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y'
WITH SUBJECT = 'Sammamish Shipping Records',
EXPIRY_DATE = '20201031';
GO
B. Tanúsítvány létrehozása fájlból
Az alábbi példa létrehoz egy tanúsítványt az adatbázisban, amely betölti a kulcspárt a fájlokból.
CREATE CERTIFICATE Shipping11
FROM FILE = 'c:\Shipping\Certs\Shipping11.cer'
WITH PRIVATE KEY (FILE = 'c:\Shipping\Certs\Shipping11.pvk',
DECRYPTION BY PASSWORD = 'sldkflk34et6gs%53#v00');
GO
Important
Az Azure SQL Database nem támogatja a tanúsítvány fájlból való létrehozását.
C. Tanúsítvány létrehozása aláírt végrehajtható fájlból
CREATE CERTIFICATE Shipping19
FROM EXECUTABLE FILE = 'c:\Shipping\Certs\Shipping19.dll';
GO
Másik lehetőségként létrehozhat egy szerelvényt a dll fájlból, majd létrehozhat egy tanúsítványt a szerelvényből.
CREATE ASSEMBLY Shipping19
FROM 'c:\Shipping\Certs\Shipping19.dll'
WITH PERMISSION_SET = SAFE;
GO
CREATE CERTIFICATE Shipping19 FROM ASSEMBLY Shipping19;
GO
Important
Az Azure SQL Database nem támogatja a tanúsítvány fájlból való létrehozását.
Important
Az SQL Server 2017 -től (14.x) kezdődően a "CLR szigorú biztonsági" kiszolgálókonfigurációs lehetőség megakadályozza a szerelvények betöltését anélkül, hogy először beállítanák a biztonsági beállításokat. Töltse be a tanúsítványt, hozzon létre belőle egy bejelentkezést, adja meg UNSAFE ASSEMBLY a bejelentkezést, majd töltse be a szerelvényt.
D. Önaláírt tanúsítvány létrehozása
Az alábbi példa titkosítási jelszó megadása nélkül hoz létre egy tanúsítványt Shipping04 . Ez a példa az Analytics Platform System (PDW) használatával használható.
CREATE CERTIFICATE Shipping04
WITH SUBJECT = 'Sammamish Shipping Records';
GO
E. Tanúsítvány létrehozása PFX-fájlból
CREATE CERTIFICATE Shipping04
FROM FILE = 'c:\storedcerts\shipping04cert.pfx'
WITH
FORMAT = 'PFX',
PRIVATE KEY (
DECRYPTION BY PASSWORD = '9n34khUbhk$w4ecJH5gh'
);
Lásd még:
MÓDOSÍTÁSI TANÚSÍTVÁNY (Transact-SQL)
LEENGEDŐ TANÚSÍTVÁNY (Transact-SQL)
BIZTONSÁGI MENTÉSI TANÚSÍTVÁNY (Transact-SQL)
Titkosítási hierarchia
ESEMÉNYADATOK (Transact-SQL)
CERTENCODED (Transact-SQL)
CERTPRIVATEKEY (Transact-SQL)
CERT_ID (Transact-SQL)
CERTPROPERTY (Transact-SQL)