Udostępnij za pośrednictwem


Tworzenie klucza asymetrycznego (Transact-SQL)

Tworzy klucz asymetrycznego w bazie danych.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

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