Jak Zezwalaj na bazy danych dublowania, aby używać certyfikatów dla połączeń wychodzących (Transact-SQL)

W tym temacie opisano kroki związane z konfigurowaniem wystąpienia serwera, aby używać certyfikatów do uwierzytelniania połączeń wychodzących do dublowanie bazy danych.Konfiguracja połączenia wychodzące należy wykonać przed można zestaw w górę połączeń przychodzących.

Ostrzeżenie

Wszystkie połączenia dublowania w wystąpieniu serwera używają jednej dublowanie bazy danych punktu końcowego i należy określić metoda uwierzytelnianie wystąpienie serwera podczas tworzenia punktu końcowego.

Proces konfigurowania połączeń wychodzących, obejmuje następujące ogólne kroki:

  1. W wzorca bazy danych, utwórz bazę danych klucza głównego.

  2. W wzorca bazy danych, należy utworzyć zaszyfrowany certyfikat na wystąpienie serwera.

  3. Tworzenie punktu końcowego dla wystąpienie serwera, używając jego certyfikat.

  4. Wykonaj kopię zapasową certyfikat do pliku i bezpieczne kopiowanie do innego systemu lub systemów.

Dla każdego partner i monitora, należy wykonać te kroki, jeśli istnieje.

W poniższej procedurze opisano kroki szczegółowo.Dla każdego kroku procedury zawiera przykład konfigurowanie wystąpienie serwera w systemie o nazwie HOST_A.Towarzyszący sekcji przykład ilustruje te same kroki dla innego wystąpienie serwera w systemie o nazwie HOST_B.

Procedura

Aby skonfigurować wystąpienia serwera dla połączeń wychodzących dublowanie (na HOST_A)

  1. Na wzorca bazy danych, utwórz bazę danych klucza głównego, jeśli żaden nie istnieje.Aby wyświetlić istniejące klucze dla bazy danych, użyj sys.symmetric_keys wykazu widoku.

    Aby utworzyć bazę danych klucza głównego, należy użyć następujących Transact-SQL polecenia:

    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';
    GO
    

    Użyj unikatowej, silne hasło i nagrać go w bezpiecznym miejscu.

    Aby uzyskać więcej informacji, zobacz Tworzenie klucza głównego (Transact-SQL) i Jak Utwórz klucz główny bazy danych.

  2. W wzorca bazy danych, należy utworzyć zaszyfrowany certyfikat na serwerze wystąpienie dla połączeń wychodzących, jego potrzeby dublowanie bazy danych.

    Na przykład, aby utworzyć certyfikat dla systemu HOST_A.

    Ważna informacjaWażne:

    Jeśli zamierzasz użyć certyfikat do więcej niż jednego roku, określenie daty wygaśnięcia UTC czas za pomocą opcji EXPIRY_DATE w instrukcja Tworzenie certyfikat.Zaleca się także użyć programu SQL Server Management Studio, aby utworzyć regułę na podstawie zasad zarządzania alert , gdy wygasają certyfikatów.Za pomocą zasad zarządzania Utworzyć nowy warunek okno dialogowe pozycję Utwórz tę regułę we @ expirationdate pole z certyfikat aspekt.Aby uzyskać więcej informacji, zobacz Administrowanie serwerami za pomocą zarządzania opartego na zasadach, Samouczek: Administrowanie serwerami za pomocą zarządzania opartego na zasadach, i Zabezpieczenia programu SQL Server.

    USE master;
    CREATE CERTIFICATE HOST_A_cert 
       WITH SUBJECT = 'HOST_A certificate for database mirroring', 
       EXPIRY_DATE = '11/30/2013';
    GO
    

    Aby uzyskać więcej informacji, zobacz Tworzenie certyfikatu (Transact-SQL).

    Aby wyświetlić certyfikaty w wzorca bazy danych, można użyć następujących Transact-SQL sprawozdania:

    USE master;
    SELECT * FROM sys.certificates;
    

    Aby uzyskać więcej informacji, zobacz sys.Certificates (Transact-SQL).

  3. Upewnij się, że dublowanie bazy danych endpoint istnieje na wszystkich wystąpień serwera.

    Jeśli dublowanie bazy danych endpoint już istnieje dla wystąpienie serwera, należy ponownie użyć tego punktu końcowego dla innych sesji, ustanowić w wystąpieniu serwera.Aby ustalić, czy na serwerze istnieje dublowanie bazy danych końcowy wystąpienie i aby wyświetlić jego konfiguracja, należy użyć następującej instrukcja:

    SELECT name, role_desc, state_desc, connection_auth_desc, encryption_algorithm_desc 
       FROM sys.database_mirroring_endpoints;
    

    Jeżeli końcowy nie istnieje, Utwórz punkt końcowy, który używa tego certyfikat dla połączeń wychodzących i który używa poświadczenia certyfikat weryfikacji w innym systemie.To jest końcowy całego serwera, używany przez dublowanie wszystkie sesje, w których uczestniczy wystąpienie serwera.

    Na przykład, aby utworzyć punkt końcowy dublowanie, na przykład wystąpienie serwera na HOST_A.

    CREATE ENDPOINT Endpoint_Mirroring
       STATE = STARTED
       AS TCP (
          LISTENER_PORT=7024
          , LISTENER_IP = ALL
       ) 
       FOR DATABASE_MIRRORING ( 
          AUTHENTICATION = CERTIFICATE HOST_A_cert
          , ENCRYPTION = REQUIRED ALGORITHM AES
          , ROLE = ALL
       );
    GO
    

    Aby uzyskać więcej informacji, zobacz Utwórz punkt końcowy (Transact-SQL).

  4. Wykonaj kopię zapasową certyfikat i skopiuj go do innego systemu lub systemów.Jest to niezbędne do konfigurowania połączeń przychodzących na inny system.

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';
    GO
    

    Aby uzyskać więcej informacji, zobacz Wykonaj kopię ZAPASOWĄ certyfikatu (Transact-SQL).

    Skopiuj ten certyfikat przy użyciu dowolnej metoda bezpiecznego wybierzesz.Uważaj niezwykle zabezpieczyć wszystkie certyfikaty.

Przykład kodu w poprzednich krokach skonfigurować połączenia wychodzące na HOST_A.

Teraz należy wykonać odpowiednie kroki wychodzących równoważne HOST_B.Czynności te zostały przedstawione w poniższej sekcji przykład.

Przykład

Poniższy przykład demonstruje, konfigurowanie HOST_B dla połączeń wychodzących.

USE master;
--Create the database Master Key, if needed.
CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
GO
-- Make a certifcate on HOST_B server instance.
CREATE CERTIFICATE HOST_B_cert 
   WITH SUBJECT = 'HOST_B certificate for database mirroring', 
   EXPIRY_DATE = '11/30/2013';
GO
--Create a mirroring endpoint for the server instance on HOST_B.
CREATE ENDPOINT Endpoint_Mirroring
   STATE = STARTED
   AS TCP (
      LISTENER_PORT=7024
      , LISTENER_IP = ALL
   ) 
   FOR DATABASE_MIRRORING ( 
      AUTHENTICATION = CERTIFICATE HOST_B_cert
      , ENCRYPTION = REQUIRED ALGORITHM AES
      , ROLE = ALL
   );
GO
--Backup HOST_B certificate.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
GO 
--Using any secure copy method, copy C:\HOST_B_cert.cer to HOST_A.

Kopiowanie certyfikat do systemu, używając dowolnej metoda bezpiecznego.Uważaj niezwykle zabezpieczyć wszystkie certyfikaty.

Ważna informacjaWażne:

Po zestaw połączeń wychodzących, należy skonfigurować połączenia przychodzące na każde wystąpienie serwera dla wystąpienia serwera lub wystąpień.Aby uzyskać więcej informacji, zobacz Jak Zezwalaj na bazy danych dublowania, aby używać certyfikatów dla połączeń przychodzących (Transact-SQL).

Informacje na temat tworzenia duplikat bazy danych, w tym przykładzie języka Transact-SQL, zobacz Jak Przygotowywanie bazy danych dublowania do dublowania (Transact-SQL).

Na przykład języka Transact-SQL ustanowienia sesja trybu wysokiej wydajności, zobacz Przykład: Konfigurowanie bazy danych, dublowanie przy użyciu certyfikatów (Transact-SQL).

Zabezpieczenia

Chyba, że aby zagwarantować, że sieć jest bezpieczny, zaleca się, aby korzystać z szyfrowanie dla połączeń dublowanie bazy danych.

Podczas kopiowania certyfikat do innego systemu, należy użyć metoda bezpiecznej kopii.

Historia zmian

Zaktualizowana zawartość

Dodana uwaga o korzystaniu z opcji EXPIRY_DATE w sprawozdaniu Tworzenie certyfikatu i aktualizowane przykłady kodu przy użyciu tej opcji.