Tworzenie klucza asymetrycznego (Transact-SQL)
Tworzy klucz asymetrycznego w bazie danych.
Składnia
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_512 | RSA_1024 | RSA_2048 }
<encrypting_mechanism> ::=
PASSWORD = 'password'
Argumenty
ZAsym_Key_Source
Określa źródło , z którego załadować parę klucz asymetrycznego.AUTORYZACJAdatabase_principal_name
Określa właściciela kluczasymetrycznego.Właściciel nie może być roli lub grupy.Jeśli ta opcja zostanie pominięta, właściciel będzie bieżącego użytkownika.FILE ='path_to_strong-name_file'
Określa ścieżka pliku silnej nazwy, z którego można załadować para klucz .PLIK WYKONYWALNY ='path_to_executable_file"
Określa plik wirtualny plik dziennika , z którego można załadować kluczpublicznego.Ograniczone do 260 znaków przez MAX_PATH z APIsystemu Windows.MONTAŻAssembly_Name
Określa nazwę wirtualny plik dziennika , z którego można załadować kluczpublicznego.SZYFROWANIE PRZEZ<key_name_in_provider>
Określa, jak klucz jest zaszyfrowany.Może być certyfikat, hasła lub kluczasymetrycznego.KEY_NAME ='key_name_in_provider'
Określa nazwę klucz zewnętrznego dostawca.Aby uzyskać więcej informacji dotyczących zarządzania klucz zewnętrzny, zobacz Opis Extensible Key Management (EKM).CREATION_DISPOSITION = CREATE_NEW
Tworzy nowy klucz na urządzeniu Extensible Key Management.PROV_KEY_NAME musi używane do określania nazwy klucz na urządzeniu.Jeśli klucz już istnieje na urządzeniu instrukcja nie powiedzie się z powodu błędu.CREATION_DISPOSITION = OPEN_EXISTING
Mapy SQL Server klucz asymetrycznego do istniejącego kluczrozszerzonego Key Management.PROV_KEY_NAME musi używane do określania nazwy klucz na urządzeniu. Jeśli CREATION_DISPOSITION = OPEN_EXISTING nie został dostarczony, wartością domyślną jest CREATE_NEW.HASŁO = "password'
Określa hasło szyfrowania kluczprywatnego.Jeśli nie ma tej klauzula , klucz prywatny będzie zaszyfrowane przy użyciu kluczgłównego bazy danych.passwordjest maksymalnie 128 znaków.passwordmusi spełniać wymogi zasady haseł systemu Windows komputer, na którym jest uruchomione wystąpienie SQL Server.
Uwagi
kluczasymetrycznego jest zabezpieczanyobiekt na poziombazy danych. W domyślnym formularzu ten obiekt zawiera klucz publiczny i prywatny klucz.Gdy wykonywane bez klauzulaFROM, utworzenie klucza asymetrycznego generuje nową parę klucz .Wykonane z klauzulaFROM, utworzenie klucza asymetrycznego przywozu para klucz z pliku lub przywozu klucz publiczny z wirtualny plik dziennika.
Domyślnie klucz prywatny jest chroniony przez kluczgłówny bazy danych.Jeśli został utworzony bez wzorca bazy danych klucz , wymagane jest hasło ochrony kluczprywatnego.Jeśli istnieje baza danych główny klucz hasło jest opcjonalne.
klucz prywatny może być 512, 1024 lub 2048 bity długości.
Uprawnienia
Wymaga utworzenia klucza asymetrycznego uprawnień w bazie danych.Jeżeli określono autoryzacji klauzula wymaga uprawnienia PERSONIFIKUJ głównej bazy danych lub ZMIEŃ uprawnienia rola aplikacji.Tylko logowania systemu Windows, SQL Server logowania do i z ról aplikacji mogą być właścicielami klucze asymetryczne.Klucze asymetryczne nie może należeć do grupy i role.
Przykłady
A.Tworzenie kluczasymetrycznego
Poniższy przykład ilustruje tworzenie asymetrycznego klucz o nazwie PacificSales09 za pomocą RSA_2048 algorytmu i chroni klucz prywatny z hasła.
CREATE ASYMMETRIC KEY PacificSales09
WITH ALGORITHM = RSA_2048
ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
GO
B.Tworzenie asymetrycznego klucz z pliku, podając autoryzacja do użytkownika
Poniższy przykład tworzy kluczasymetrycznegoPacificSales19 z klucz przechowywane w pliku, pary i upoważnia użytkownika Christina używać kluczasymetrycznego.
CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION Christina
FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp'
ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
GO
C.Tworzenie asymetrycznego klucz z EKM dostawca
Poniższy przykład tworzy kluczasymetrycznegoEKM_askey1 z pary klucz , przechowywane w pliku. Go następnie szyfruje go za pomocą zarządzania klucza rozszerzonego dostawca , o nazwie EKMProvider1, i klucz na tym dostawca o nazwie key10_user1.
CREATE ASYMMETRIC KEY EKM_askey1
FROM PROVIDER EKM_Provider1
WITH
ALGORITHM = RSA_512,
CREATION_DISPOSITION = CREATE_NEW
, PROVIDER_KEY_NAME = 'key10_user1' ;
GO
Zobacz także