Поделиться через


Пример. Настройка зеркального отображения базы данных при помощи сертификатов (язык Transact-SQL)

В этом примере описаны все действия, выполняемые при создании сеанса зеркального отображения базы данных с использованием проверки подлинности на основе сертификатов. Примеры в этом подразделе используют язык Transact-SQL. За исключением случаев, когда можно гарантировать безопасность сети, для соединений зеркального отображения базы данных рекомендуется использовать шифрование.

При копировании сертификата в другую систему используйте безопасный метод копирования. Отнеситесь с особым вниманием к безопасному хранению сертификатов.

Пример

В следующем примере показано, что необходимо сделать на одном участнике, который находится на узле HOST_A. В этом примере два участника являются экземплярами сервера по умолчанию в трех компьютерных системах. Два экземпляра сервера запущены в ненадежных доменах Windows, поэтому необходима проверка подлинности на основе сертификата.

Начальная основная роль принимается узлом HOST_A, а зеркальная роль — узлом HOST_B.

Настройка зеркального отображения базы данных с помощью сертификатов состоит из четырех основных этапов, три из которых — 1, 2 и 4 — показаны в этом примере. Ниже приведены эти этапы.

  1. Настройка исходящих соединений

    В этом примере приводится пошаговое описание следующих процессов.

    1. Настройка узла Host_A для исходящих соединений.

    2. Настройка узла Host_B для исходящих соединений.

    Дополнительные сведения о настройке зеркального отображения базы данных см. в разделе Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).

  2. Настройка входящих соединений

    В этом примере приводится пошаговое описание следующих процессов.

    1. Настройка узла Host_A для входящих соединений.

    2. Настройка узла Host_B для входящих соединений.

    Дополнительные сведения о настройке зеркального отображения базы данных см. в разделе Включение использования сертификатов для входящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).

  3. Создание зеркальной базы данных

    Дополнительные сведения о создании зеркальной базы данных см. в разделе Подготовка зеркальной базы данных к зеркальному отображению (SQL Server).

  4. Настройка участников зеркального отображения

Настройка исходящих соединений

Настройка узла Host_A для исходящих соединений

  1. При необходимости создайте в базе данных master главный ключ базы данных.

    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_Password!>';
    GO
    
  2. Сделайте сертификат для данного экземпляра сервера.

    USE master;
    CREATE CERTIFICATE HOST_A_cert 
       WITH SUBJECT = 'HOST_A certificate';
    GO
    
  3. Создайте конечную точку для экземпляра сервера с использованием его сертификата.

    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
    
  4. Создайте резервную копию сертификата HOST_A и скопируйте ее на другую систему HOST_B.

    BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer';
    GO
    
  5. С помощью безопасного метода скопируйте файл «C:\HOST_A_cert.cer» на узел HOST_B.

Настройка узла Host_B для исходящих соединений

  1. При необходимости создайте в базе данных master главный ключ базы данных.

    USE master;
    CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>';
    GO
    
  2. Создайте сертификат для экземпляра сервера HOST_B.

    CREATE CERTIFICATE HOST_B_cert 
       WITH SUBJECT = 'HOST_B certificate for database mirroring';
    GO
    
  3. Создайте конечную точку зеркального отображения для экземпляра сервера на узле 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
    
  4. Создайте резервную копию сертификата HOST_B.

    BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer';
    GO 
    
  5. С помощью безопасного метода скопируйте файл «C:\HOST_B_cert.cer» на узел HOST_A.

Дополнительные сведения см. в разделе Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).

[В начало примера]

Настройка входящих соединений

Настройка узла Host_A для входящих соединений

  1. Создайте имя входа на узле HOST_A для узла HOST_B.

    USE master;
    CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_Password!@#';
    GO
    
  2. Создайте пользователя для этого имени входа.

    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    
  3. Свяжите сертификат с пользователем.

    CREATE CERTIFICATE HOST_B_cert
       AUTHORIZATION HOST_B_user
       FROM FILE = 'C:\HOST_B_cert.cer'
    GO
    
  4. Предоставьте данной учетной записи разрешение CONNECT на эту удаленную конечную точку зеркального отображения.

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login];
    GO
    

Настройка узла Host_B для входящих соединений

  1. Создайте имя входа на узле HOST_B для узла HOST_A.

    USE master;
    CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2';
    GO
    
  2. Создайте пользователя для этого имени входа.

    CREATE USER HOST_A_user FOR LOGIN HOST_A_login;
    GO
    
  3. Свяжите сертификат с пользователем.

    CREATE CERTIFICATE HOST_A_cert
       AUTHORIZATION HOST_A_user
       FROM FILE = 'C:\HOST_A_cert.cer'
    GO
    
  4. Предоставьте данной учетной записи разрешение CONNECT на эту удаленную конечную точку зеркального отображения.

    GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login];
    GO
    
Важное примечаниеВажно!

При необходимости запуска в режиме высокого уровня защиты с автоматической отработкой отказа нужно повторить эти шаги установки, чтобы настроить следящий сервер для исходящих и входящих соединений. При настройке входящих соединений с задействованным следящим сервером необходимо настроить имена входа и пользователей для следящего сервера на обоих участниках и для обоих участников на следящем сервере.

Дополнительные сведения см. в разделе Включение использования сертификатов для входящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).

[В начало примера]

Создание зеркальной базы данных

Дополнительные сведения о создании зеркальной базы данных см. в разделе Подготовка зеркальной базы данных к зеркальному отображению (SQL Server).

Настройка участников зеркального отображения

  1. В экземпляре зеркального сервера, расположенного на узле HOST_B, установите в качестве участника экземпляр сервера, расположенного на узле HOST_A (сделав его начальным экземпляром основного сервера). Замените допустимый сетевой адрес на TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024. Дополнительные сведения см. в разделе Указание сетевого адреса сервера (зеркальное отображение базы данных).

    --At HOST_B, set server instance on HOST_A as partner (principal server):
    ALTER DATABASE AdventureWorks 
        SET PARTNER = 'TCP://HOST_A.Mydomain.Corp.Adventure-Works.com:7024';
    GO
    
  2. В экземпляре основного сервера, расположенного на узле HOST_A, установите в качестве участника экземпляр сервера, расположенного на узле HOST_B (сделав его начальным экземпляром зеркального сервера). Замените допустимый сетевой адрес на TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024.

    --At HOST_A, set server instance on HOST_B as partner (mirror server).
    ALTER DATABASE AdventureWorks 
        SET PARTNER = 'TCP://HOST_B.Mydomain.Corp.Adventure-Works.com:7024';
    GO
    
  3. В этом примере предполагается, что сеанс будет выполнен в режиме высокой производительности. Чтобы настроить этот сеанс для использования режима высокой производительности, в экземпляре основного сервера (на узле HOST_A) установите безопасность транзакций в положение OFF.

    --Change to high-performance mode by turning off transacton safety.
    ALTER DATABASE AdventureWorks 
        SET PARTNER SAFETY OFF
    GO
    
    ПримечаниеПримечание

    При необходимости запуска в режиме высокого уровня защиты с автоматической отработкой отказа оставьте безопасность транзакций в положении FULL (установка по умолчанию) и добавьте следящий сервер как можно быстрее после выполнения второй инструкции SET PARTNER 'partner_server'. Обратите внимание, что следящий сервер вначале нужно настроить для исходящих и входящих соединений.

[В начало примера]

Связанные задачи

Значок стрелки, используемый со ссылкой «В начало»[В начало]

См. также

Справочник

ALTER DATABASE (Transact-SQL)

Основные понятия

Безопасность транспорта для зеркального отображения баз данных и групп доступности AlwaysOn (SQL Server)

Указание сетевого адреса сервера (зеркальное отображение базы данных)

Конечная точка зеркального отображения базы данных (SQL Server)

Использование сертификатов для конечной точки зеркального отображения базы данных (Transact-SQL)

Защита и обеспечение безопасности (компонент Database Engine)