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


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

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

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

Пример

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

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

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

Настройка узла Host_A для исходящих соединений
  1. В базе данных 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
    
ms191140.note(ru-ru,SQL.90).gifВажно!
При необходимости запуска в режиме высокого уровня защиты с автоматическим переходом на другой ресурс нужно повторить эти шаги установки, чтобы настроить следящий сервер для исходящих и входящих соединений. При настройке входящих соединений с задействованным следящим сервером необходимо настроить имена входа и пользователей для следящего сервера на обоих участниках и для обоих участников на следящем сервере.

Дополнительные сведения см. в разделе Как разрешить использование сертификатов для входящих соединений (Transact-SQL).

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

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

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

  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
    
    ms191140.note(ru-ru,SQL.90).gifПримечание.
    При необходимости запуска в режиме высокого уровня защиты с автоматическим переходом на другой ресурс оставьте безопасность транзакций в положении FULL (установка по умолчанию) и добавьте следящий сервер как можно быстрее после выполнения второй инструкции SET PARTNER 'partner_server'. Обратите внимание, что следящий сервер вначале нужно настроить для исходящих и входящих соединений.

См. также

Задачи

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

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

Защита транспорта зеркального отображения базы данных
Указание сетевого адреса сервера (зеркальное отображение базы данных)
Конечная точка зеркального отображения базы данных
Использование сертификатов для зеркального отображения базы данных
Подготовка зеркальной базы данных к зеркальному отображению
Управление зеркальным отображением базы данных (среда SQL Server Management Studio)
Управление метаданными при обеспечении доступности базы данных на другом экземпляре сервера
Устранение неполадок при установке зеркального отображения базы данных

Другие ресурсы

ALTER DATABASE (Transact-SQL)
Вопросы безопасности SQL Server

Справка и поддержка

Получение помощи по SQL Server 2005