Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Dotyczy:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
SQL database w usłudze Microsoft Fabric
Tworzy klucz asymetryczny w bazie danych.
Ta funkcja jest niezgodna z eksportowaniem bazy danych przy użyciu struktury aplikacji warstwy danych (DACFx). Przed wyeksportowaniem należy usunąć wszystkie klucze asymetryczne.
Transact-SQL konwencje składni
Note
Ta składnia nie jest obsługiwana przez bezserwerową pulę SQL w usłudze 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'
Arguments
asym_key_name
To nazwa klucza asymetrycznego w bazie danych. Nazwy kluczy asymetrycznych muszą być zgodne z regułami dotyczącymi identyfikatorów i muszą być unikatowe w bazie danych.
AUTORYZACJA database_principal_name
Określa właściciela klucza asymetrycznego. Właściciel nie może być rolą ani grupą. Jeśli ta opcja zostanie pominięta, właściciel będzie bieżącym użytkownikiem.
OD asym_key_source
Określa źródło, z którego ma być ładowana para kluczy asymetrycznych.
PLIK = 'path_to_strong-name_file'
Określa ścieżkę pliku o silnej nazwie, z którego ma być ładowana para kluczy. Ograniczone do 260 znaków przez MAX_PATH z interfejsu API systemu Windows.
Note
Ta opcja nie jest dostępna w zawartej bazie danych.
PLIK WYKONYWALNY = 'path_to_executable_file'
Określa ścieżkę pliku zestawu, z którego ma być ładowany klucz publiczny. Ograniczone do 260 znaków przez MAX_PATH z interfejsu API systemu Windows.
Note
Ta opcja nie jest dostępna w zawartej bazie danych.
assembly_name ZGROMADZENIA
Określa nazwę podpisanego zestawu, który został już załadowany do bazy danych, z której ma zostać załadowany klucz publiczny.
DOSTAWCA provider_name
Określa nazwę dostawcy rozszerzonego zarządzania kluczami (EKM). Dostawca musi być zdefiniowany jako pierwszy przy użyciu instrukcji CREATE PROVIDER. Aby uzyskać więcej informacji na temat zarządzania kluczami zewnętrznymi, zobacz Extensible Key Management (EKM).
ALGORYTM = <algorytm>
Można podać pięć algorytmów; RSA_4096, RSA_3072, RSA_2048, RSA_1024 i RSA_512.
RSA_1024 i RSA_512 są przestarzałe. Aby użyć RSA_1024 lub RSA_512 (niezalecane), należy ustawić bazę danych na poziom zgodności bazy danych 120 lub niższy.
Począwszy od programu SQL Server 2022 (16.x), obsługiwane są RSA-HSM_2048 i RSA-HSM_3072.
PROVIDER_KEY_NAME = 'key_name_in_provider'
Określa nazwę klucza od dostawcy zewnętrznego.
CREATION_DISPOSITION = CREATE_NEW
Tworzy nowy klucz na urządzeniu do zarządzania kluczami rozszerzalnymi. PROVIDER_KEY_NAME należy użyć do określenia nazwy klucza na urządzeniu. Jeśli klucz już istnieje na urządzeniu, instrukcja kończy się niepowodzeniem z powodu błędu.
CREATION_DISPOSITION = OPEN_EXISTING
Mapuje klucz asymetryczny programu SQL Server na istniejący rozszerzalny klucz zarządzania kluczami. PROVIDER_KEY_NAME należy użyć do określenia nazwy klucza na urządzeniu. Jeśli nie podano CREATION_DISPOSITION = OPEN_EXISTING, wartość domyślna to CREATE_NEW.
SZYFROWANIE WEDŁUG HASŁA = "hasło"
Określa hasło, za pomocą którego chcesz zaszyfrować klucz prywatny. Jeśli ta klauzula nie istnieje, klucz prywatny zostanie zaszyfrowany przy użyciu klucza głównego bazy danych.
hasło to maksymalnie 128 znaków.
hasło musi spełniać wymagania zasad haseł systemu Windows komputera z uruchomionym wystąpieniem programu SQL Server.
Remarks
Klucz asymetryczny to zabezpieczana jednostka na poziomie bazy danych. W postaci domyślnej ta jednostka zawiera zarówno klucz publiczny, jak i klucz prywatny. Po wykonaniu bez klauzuli FROM funkcja CREATE ASYMMETRIC KEY generuje nową parę kluczy. Po wykonaniu przy użyciu klauzuli FROM klucz ASYMETRYCZNY CREATE importuje parę kluczy z pliku lub importuje klucz publiczny z zestawu lub pliku DLL.
Domyślnie klucz prywatny jest chroniony przez klucz główny bazy danych. Jeśli nie utworzono klucza głównego bazy danych, do ochrony klucza prywatnego jest wymagane hasło.
Klucz prywatny może mieć długość 512, 1024 lub 2048 bitów.
Klucze asymetryczne używane do szyfrowania TDE są ograniczone do rozmiaru klucza prywatnego o rozmiarze 3072 bitów.
Permissions
Wymaga uprawnienia CREATE ASYMETRYCZNY KLUCZ w bazie danych. Jeśli określono klauzulę AUTHORIZATION, wymaga uprawnienia IMPERSONATE dla podmiotu zabezpieczeń bazy danych lub uprawnienia ALTER w roli aplikacji. Tylko identyfikatory logowania systemu Windows, identyfikatory logowania programu SQL Server i role aplikacji mogą być właścicielami kluczy asymetrycznych. Grupy i role nie mogą być właścicielami kluczy asymetrycznych.
Examples
A. Tworzenie klucza asymetrycznego
Poniższy przykład tworzy klucz asymetryczny o nazwie PacificSales09 przy użyciu algorytmu RSA_2048 i chroni klucz prywatny przy użyciu hasła.
CREATE ASYMMETRIC KEY PacificSales09
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
GO
B. Tworzenie klucza asymetrycznego z pliku, dając autoryzację użytkownikowi
Poniższy przykład tworzy klucz PacificSales19 asymetryczny z pary kluczy przechowywanej w pliku i przypisuje własność klucza asymetrycznego użytkownikowi Christina. Klucz prywatny jest chroniony przez klucz główny bazy danych, który należy utworzyć przed utworzeniem klucza asymetrycznego.
CREATE ASYMMETRIC KEY PacificSales19
AUTHORIZATION Christina
FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp';
GO
C. Tworzenie klucza asymetrycznego od dostawcy EKM
Poniższy przykład tworzy klucz EKM_askey1 asymetryczny na podstawie pary kluczy przechowywanej w dostawcy rozszerzonego zarządzania kluczami o nazwie i klucza dla tego dostawcy o nazwie EKM_Provider1key10_user1.
CREATE ASYMMETRIC KEY EKM_askey1
FROM PROVIDER EKM_Provider1
WITH
ALGORITHM = RSA_2048,
CREATION_DISPOSITION = CREATE_NEW
, PROVIDER_KEY_NAME = 'key10_user1' ;
GO
Zobacz też
ALTER ASYMETRYCZNY KLUCZ (Transact-SQL)
DROP ASYMETRYCZNY KLUCZ (Transact-SQL)
ASYMKEYPROPERTY (Transact-SQL)
ASYMKEY_ID (Transact-SQL)
Wybieranie algorytmu szyfrowania
Hierarchia szyfrowania
rozszerzalne zarządzanie kluczami przy użyciu usługi Azure Key Vault (SQL Server)