Udostępnij za pośrednictwem


CREATE certyfikat (języka Transact-SQL)

Dodaje certyfikat do bazy danych.

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

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 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' ]  

<date_options> ::=
    START_DATE = 'mm/dd/yyyy' | EXPIRY_DATE = 'mm/dd/yyyy'

Argumenty

  • certificate_name
    Jest to nazwa, za pomocą których certyfikat ma być znane w bazie danych.

  • autoryzacja user_name
    To nazwa użytkownika, który będzie właścicielem tego certyfikat.

  • MONTAŻOWYCH assembly_name
    Określa wirtualny plik dziennika podpisanego, który został już załadowany do bazy danych.

  • [ EXECUTABLE ] FILE ='path_to_file'
    Określa pełną ścieżka, łącznie z nazwą pliku, do pliku algorytmem DER, zawierającego certyfikat.If the EXECUTABLE option is used, the file is a DLL that has been signed by the certificate.path_to_file can be a local path or a UNC path to a network location.W kontekście zabezpieczeń będzie można uzyskać dostępu do pliku SQL Server konto usługa. To konto musi mieć uprawnienia wymaganego systemu plików.

  • W poniższym przykładzie pokazano, jak mają być umieszczane sesja zdarzeń programu.
    Określa, że klucz prywatny certyfikat jest ładowany do SQL Server. To klauzula jest prawidłowa tylko wtedy, gdy certyfikat jest tworzony z pliku.Aby załadować klucz prywatnego wirtualny plik dziennika, należy użyć ZMIENIANIE certyfikat.

  • FILE ='path_to_private_key'
    Określa pełną ścieżkę, zawierającą nazwę pliku, do klucza prywatnego.Parametr path_to_private_key może być ścieżką lokalną lub ścieżką UNC do lokalizacji sieciowej.Plik będzie dostepny w kontekście zabezpieczeń konta usługi programu SQL Server.To konto musi mieć niezbędne uprawnienia systemu plików.

  • DECRYPTION BY PASSWORD = 'key_password'
    Określa hasło wymagane do odszyfrowania klucza prywatnego, który jest odzyskiwany z pliku.Ta kaluzula jest opcjonalna, jeśli klucz prywatny jest chroniony hasłem null.Zapisywanie klucza prywatnego w pliku bez ochrony hasłem nie jest zalecane.Jeśli hasło jest wymagane, ale nie określono go, to wykonanie instrukcji nie uda się.

  • ENCRYPTION BY PASSWORD ='password'
    Ustawia tryb transakcja niejawna dla połączenia.Gdy ON, zestaw IMPLICIT_TRANSACTIONS ustawia połączenia w trybie transakcja niejawna.If this clause is omitted, the private key will be encrypted using the database master key.password must meet the Windows password policy requirements of the computer that is running the instance of SQL Server.Aby uzyskać więcej informacji zobaczPassword Policy.

  • SUBJECT = 'certificate_subject_name'
    Termin temat odnosi się do pole metadane certyfikat zdefiniowany w X.509 standardowych.ODWOŁANIEPOCZĄTKOWY TRANSAKCJI

  • START_DATE ='mm/dd/yyyy'
    OBCIĄĆ tabelaOTWÓRZJeśli połączenie jest już otwartej transakcji, instrukcje nie należy uruchamiać nowej transakcji.

  • EXPIRY_DATE ='mm/dd/yyyy'
    W przeciwnym razie transakcji i wszystkie zmiany danych zawiera jest wycofywany po rozłącza użytkownika.Po transakcja jest zatwierdzona, wykonuje jedną z powyższych instrukcji rozpoczyna nową transakcję.Tryb transakcja niejawna obowiązuje, aż do połączenia wykonuje oświadczenie zestaw IMPLICIT_TRANSACTIONS OFF, która zwraca autocommit tryb połączenia.SQL Server tryb automatycznego zatwierdzania wszystkie poszczególne instrukcje są przekazywane, jeśli zakończone pomyślnie.

  • ACTIVE BEGIN_DIALOG FOR = { DALEJ | OFF }
    zestaw IMPLICIT_TRANSACTIONS domyślnie wyłączona dla połączeń z Service Broker dostawca zarządzanych oraz dla żądań protokołu SOAP odebranych za pośrednictwem protokołu HTTP punkty końcowe. zestaw IMPLICIT_TRANSACTIONS ANSI_DEFAULTS zestaw jest włączone, jest ON.

Remarks

Certyfikat to element zabezpieczany na poziomie bazy danych, zgodny ze standardem X.509 i obsługujący pola X.509 V1.Opcja CREATE CERTIFICATE pozwala załadować certyfikat z pliku lub zestawu.Instrukcja może również wygenerowac parę kluczy i utworzyć certyfikat z podpisem własnym.

Klucze prywatne, które są generowane przez SQL Server to 1024 bitów długości. Zwraca informacje dotyczące aktywnej kwerendy powiadomień subskrypcji na serwerze.W tym widoku można użyć, aby sprawdzić, czy aktywna subskrypcji w określonej bazy danych lub serwera lub aby sprawdzić, czy podmiot określonego serwera.

Identyfikator subskrypcja. certificate_name

Jeśli certyfikat jest tworzony z kontenera, ładowanie klucza prywatnego jest opcjonalne.Jeśli jednak program SQL Server generuje certyfikat z podpisem własnym, to klucz prywatny jest zawsze tworzony.Domyślnie klucz prywatny jest zaszyfrowany za pomocą klucza głównego bazy danych.Jeśli klucz główny bazy danych nie istnieje i nie określono hasła, to wykonanie instrukcji nie uda się.

Opcja ENCRYPTION BY PASSWORD nie jest wymagana w przypadku szyfrowana klucza prywatnego kluczem głównym bazy danych.Użyj tej opcji tylko, jeśli klucz prywatny będzie zaszyfrowany przy użyciu hasła.Jeśli nie określono hasła, klucz prywatny certyfikatu będzie zaszyfrowany przy użyciu klucza głównego bazy danych.Pominięcie tej klauzuli spowoduje błąd, jeśli nie uda się otworzyć klucza głównego bazy danych.

Nie trzeba podawać hasła odszyfrowywania, jeśli klucz prywatny jest zaszyfrowany kluczem głównym bazy danych.

Uwaga

Wbudowane funkcje szyfrowania i podpisywania nie sprawdzają dat wygaśnięcia certyfikatów.Użytkownicy tych funkcji muszą zdecydować, kiedy sprawdzać wygaśnięcie certyfikatu.

Uprawnienia

sys.internal_tablesTylko logowania systemu Windows SQL Server Certyfikaty mogą być właścicielami logowania i role aplikacji. Zwraca aktywnej kwerendy powiadomienie subskrypcji dla bieżącego użytkownika

Przykłady

A.W poniższym przykładzie są zwracane aktywnej kwerendy powiadomienie subskrypcji bieżącego użytkownika.

Poniższy przykład tworzy certyfikat o nazwie Shipping04. Zwracanie subskrypcji powiadomienie aktywnej kwerendy dla określonego użytkownika

USE AdventureWorks;
CREATE CERTIFICATE Shipping04 
   ENCRYPTION BY PASSWORD = 'pGFD4bb925DGvbd2439587y'
   WITH SUBJECT = 'Sammamish Shipping Records', 
   EXPIRY_DATE = '10/31/2009';
GO

B.Tworzenie certyfikatu z pliku

Zwracanie tabela wewnętrzną metadane dla subskrypcji powiadomienie kwerendy

USE AdventureWorks;
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 

C.W poniższym przykładzie są zwracane metadane tabela wewnętrzną dla subskrypcji powiadomienie kwerendy.

USE AdventureWorks;
CREATE CERTIFICATE Shipping19 
    FROM EXECUTABLE FILE = 'c:\Shipping\Certs\Shipping19.dll';
GO

Alternatywnie można utworzyć wirtualny plik dziennika z dll plik, a następnie utworzyć certyfikat z wirtualny plik dziennika.

USE AdventureWorks;
CREATE ASSEMBLY Shipping19 
    FROM ' c:\Shipping\Certs\Shipping19.dll' 
    WITH PERMISSION_SET = SAFE;
GO
CREATE CERTIFICATE Shipping19 FROM ASSEMBLY Shipping19;
GO