CREATE ASYMMETRIC KEY (Transact-SQL)

Tworzy klucz asymetryczne w bazie danych.

Topic link iconKonwencje składni języka Transact-SQL

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

  • FROM Asym_Key_Source
    Określa urządzenie źródłowe, z którego załadować asymetrycznego klucz pary.

  • autoryzacja database_principal_name
    Określa właściciela klucz asymetrycznego.Nie może być właściciela, roli lub grupy.Jeśli ta opcja zostanie pominięty, właściciel będzie bieżącego użytkownika.

  • FILE = "path_to_strong-name_file"
    Określa ścieżka do pliku silnej nazwy, z których można załadować klucz pary.

  • PLIK WYKONYWALNY = "path_to_executable_file"
    Określa plik wirtualny plik dziennika, z których można załadować klucz publicznego.

  • MONTAŻOWYCH Assembly_Name
    Określa nazwę wirtualny plik dziennika, z których można załadować klucz publicznego.

  • BY szyfrowanie <key_name_in_provider>
    Określa, w jaki sposób jest zaszyfrowany klucz.Może być certyfikat, hasła lub klucz asymetrycznego.

  • KEY_NAME = "key_name_in_provider"
    Określa nazwę klucz z zewnętrznego dostawca.Aby uzyskać więcej informacji na temat zarządzania kluczami zewnętrznych zobacz Understanding Extensible Key Management (EKM).

  • CREATION_DISPOSITION = CREATE_NEW
    Tworzy nowy klucz na urządzeniu Extensible Key Management.PROV_KEY_NAME muszą być używane do określenia nazwy klucz na urządzeniu.Jeśli klucz już istnieje na urządzeniu w instrukcja kończy się niepowodzeniem z powodu błędu.

  • CREATION_DISPOSITION = OPEN_EXISTING
    Mapy SQL Server klucz asymetryczny istniejącego klucza rozszerzonego Key Management. PROV_KEY_NAME muszą być używane do określenia nazwy klucz na urządzeniu.Jeśli CREATION_DISPOSITION = OPEN_EXISTING nie został podany, domyślnie jest to CREATE_NEW.

  • PASSWORD = "password"
    Określa hasło, służącą do zaszyfrowania klucz prywatnego.If this clause is not present, the private key will be encrypted with the database master key.password is a maximum of 128 characters.password must meet the Windows password policy requirements of the computer that is running the instance of SQL Server.

Remarks

An asymmetric klucz is a zabezpieczany obiekt at the database poziom.W postaci domyślnego tego obiektu zawiera klucz publiczny i klucz prywatny.Wykonywane bez klauzula FROM, CREATE klucz asymetrycznego generuje się nową parę kluczy.Podczas wykonywania w klauzula FROM CREATE klucz asymetrycznego importuje pary kluczy z pliku lub importuje klucz publicznego z wirtualny plik dziennika.

Domyślnie klucz prywatny jest chroniony przez klucz główny bazy danych.Jeśli został utworzony nie klucz głównego do bazy danych, wymagane jest hasło do ochrony klucz prywatnego.Jeśli istnieje klucz głównego do bazy danych, hasło jest opcjonalne.

Klucz prywatny może być 512, 1024 lub 2048 bity długości.

Uprawnienia

Wymaga uprawnienia CREATE klucz asymetrycznego na bazie danych.Jeśli klauzula autoryzacja jest określony, wymaga uprawnień PERSONIFIKACJI w głównej bazie danych lub ALTER uprawnienia roli aplikacji.Tylko logowania systemu Windows SQL Server identyfikatory logowania i ról aplikacji mogą być właścicielami klucze asymetryczne. Klucze asymetryczne nie może być właścicielem grupy i role.

Przykłady

A.Tworzenie asymetrycznego klucz

Poniższy przykład tworzy klawisza asymetrycznego o nazwie PacificSales09 za pomocą RSA_2048 Algorytm i to chroni klucz prywatny za pomocą 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 klucz asymetrycznego PacificSales19 z klucz parę przechowywane w pliku, a następnie zezwala na użytkownika Christina Aby użyć klucz asymetrycznego.

CREATE ASYMMETRIC KEY PacificSales19 AUTHORIZATION Christina 
    FROM FILE = 'c:\PacSales\Managers\ChristinaCerts.tmp'  
    ENCRYPTION BY PASSWORD = '<enterStrongPasswordHere>';
GO

C.Tworzenie asymetrycznego klucz z dostawca EKM

Poniższy przykład tworzy klucz asymetrycznego EKM_askey1 z pary kluczy, przechowywane w pliku. Go następnie szyfruje go za pomocą modułu dostawca rozszerzonego klucz Management o nazwie EKMProvider1, a klucz na tego dostawca 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

Historia zmian

Microsoft Learning

Rozwiązany przez usunięcie opcji certyfikat i klucz ASYMETRYCZNY od składni <encrypting_mechanism>. PASSWORD jest jedyną prawidłową opcją.