Использование сертификатов для исходящих соединений при зеркальном отображении базы данныхDatabase Mirroring - Use Certificates for Outbound Connections

Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions) Применимо к:Applies to: даSQL ServerSQL Server (все поддерживаемые версии) yesSQL ServerSQL Server (all supported versions)

В этом подразделе описаны этапы настройки экземпляров сервера для использования сертификатов проверки подлинности исходящих соединений при зеркальном отображении базы данных.This topic describes the steps for configuring server instances to use certificates to authenticate outbound connections for database mirroring. Конфигурацию исходящих соединений необходимо выполнить до настройки входящих соединений.Outbound connection configuration must be done before you can set up inbound connections.

Примечание

Все соединения зеркального отображения экземпляра сервера используют одну и ту же конечную точку зеркального отображения базы данных, и при ее создании необходимо задать метод проверки подлинности экземпляра сервера.All mirroring connections on a server instance use a single database mirroring endpoint, and you must specify the authentication method of the server instance when you create the endpoint.

Конфигурирование исходящих соединений включает следующие шаги.The process of configuring outbound connections, involves the following general steps:

  1. В базе данных master создайте главный ключ базы данных.In the master database, create a database Master Key.

  2. В базе данных master создайте зашифрованный сертификат для экземпляра сервера.In the master database, create an encrypted certificate on the server instance.

  3. Создайте конечную точку для экземпляра сервера при использовании его сертификата.Create an endpoint for the server instance using its certificate.

  4. Создайте резервную копию сертификата в файле и защищенным образом скопируйте этот файл на другие системы.Back up the certificate to a file and securely copy it to the other system or systems.

Все эти этапы необходимо выполнить для каждого из участников, а также для следящего сервера, если он есть.You must complete these steps for each partner and the witness, if there is one.

Ниже эти шаги описаны подробно.The following procedure describes these steps in detail. Для каждого шага приведен пример настройки экземпляра сервера в системе с именем HOST_A.For each step, the procedure provides an example for configuring a server instance on a system named HOST_A. В соответствующем разделе «Пример» показаны те же шаги для другого экземпляра сервера в системе с именем HOST_B.The accompanying Example section demonstrates the same steps for another server instance on a system named HOST_B.

ПроцедураProcedure

Настройка экземпляров сервера на исходящие соединения зеркального отображения (на HOST_A)To configure server instances for outbound mirroring connections (On HOST_A)

  1. В базе данных master создайте главный ключ базы данных, если он еще не создан.On the master database, create the database Master Key, if none exists. Для просмотра существующих ключей базы данных предназначено представление каталога sys.symmetric_keys .To view the existing keys for a database, use the sys.symmetric_keys catalog view.

    Создание главного ключа базы данных производится следующей инструкцией Transact-SQLTransact-SQL :To create the database Master Key, use the following Transact-SQLTransact-SQL command:

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

    Используйте уникальный надежный пароль, запишите его и храните в надежном месте.Use a unique, strong password, and record it in a safe place.

    Дополнительные сведения см. в разделах CREATE MASTER KEY (Transact-SQL) и Создание главного ключа базы данных.For more information, see CREATE MASTER KEY (Transact-SQL) and Create a Database Master Key.

  2. В базе данных master создайте зашифрованный сертификат экземпляра сервера, он будет использоваться для исходящих соединений этого экземпляра при зеркальном отображении базы данных.In the master database, create an encrypted certificate on the server instance to use for its outbound connections for database mirroring.

    Например, чтобы создать сертификат для системы HOST_A.For example, to create a certificate for the HOST_A system.

    Важно!

    Если планируется использование сертификата в течение срока, превышающего один год, укажите дату истечения срока действия в формате UTC с помощью параметра EXPIRY_DATE инструкции CREATE CERTIFICATE.If you intend to use the certificate for more than one year, specify the expiry date in UTC time by using the EXPIRY_DATE option in your CREATE CERTIFICATE statement. Кроме того, рекомендуется использовать среду SQL Server Management Studio для создания правила управления на основе политик, чтобы получать предупреждения при завершении срока действия сертификатов.Also, we recommend that you use SQL Server Management Studio to create a Policy-Based Management rule to alert you when your certificates are expiring. В диалоговом окне Создание нового условия создайте это правило в поле @ExpirationDate аспекта Certificate.Using the Policy Management Create New Condition dialog box, create this rule on the @ExpirationDate field of the Certificate facet. Дополнительные сведения см. в разделах Администрирование серверов с помощью управления на основе политик и Обеспечение безопасности SQL Server.For more information, see Administer Servers by Using Policy-Based Management and Securing SQL Server.

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

    Дополнительные сведения см. в разделе CREATE CERTIFICATE (Transact-SQL).For more information, see CREATE CERTIFICATE (Transact-SQL).

    Просмотр сертификатов в базе данных master можно выполнить с помощью следующих инструкций Transact-SQLTransact-SQL :To view the certificates in the master database, you can use the following Transact-SQLTransact-SQL statements:

    USE master;  
    SELECT * FROM sys.certificates;  
    

    Дополнительные сведения см. в разделе sys.certificates (Transact-SQL).For more information, see sys.certificates (Transact-SQL).

  3. Убедитесь, что в каждом экземпляре сервера существует конечная точка зеркального отображения базы данных.Ensure that the database mirroring endpoint exist on each of the server instances.

    Если конечная точка уже имеется для данного экземпляра сервера, она используется для всех сеансов, устанавливаемых для этого экземпляра.If a database mirroring endpoint already exists for the server instance, you should reuse that endpoint for any other sessions you establish on the server instance. Чтобы определить, существует ли конечная точка зеркального отображения базы данных в экземпляре сервера и просмотреть ее конфигурацию, выполните следующую инструкцию:To determine whether a database mirroring endpoint exists on a server instance and to view its configuration, use the following statement:

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

    Если конечная точка не существует, создайте конечную точку, которая использует этот сертификат для исходящих соединений и его учетные данные для проверки на других системах.If no endpoint exists, create an endpoint that uses this certificate for outbound connections and that uses the certificate's credentials for verification on the other system. Это конечная точка на уровне сервера, используемая всеми зеркальными сеансами, в которых участвует экземпляр сервера.This is a server-wide endpoint that is used by all mirroring sessions in which the server instance participates.

    Например, чтобы создать конечную точку зеркального отображения для экземпляра сервера HOST_A.For example, to create a mirroring endpoint for the example server instance on 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  
    

    Дополнительные сведения см. в разделе CREATE ENDPOINT (Transact-SQL).For more information, see CREATE ENDPOINT (Transact-SQL).

  4. Создайте резервную копию сертификата и скопируйте ее на другую систему или системы.Back up the certificate and copy it to the other system or systems. Она понадобится при конфигурировании на них входящих соединений.This is necessary in order to configure inbound connections on the other system.

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

    Дополнительные сведения см. в разделе BACKUP CERTIFICATE (Transact-SQL).For more information, see BACKUP CERTIFICATE (Transact-SQL).

    Скопируйте этот сертификат любым безопасным способом.Copy this certificate using any secure method you choose. Отнеситесь с особым вниманием к хранению сертификатов в безопасном месте.Be extremely careful to keep all of your certificates secure.

Программный код примеров на предыдущих шагах конфигурирует исходящие соединения на HOST_A.The example code in the preceding steps configure outbound connections on HOST_A.

Необходимо выполнить аналогичные шаги для настройки исходящего соединения для HOST_B.You now need to perform the equivalent outbound steps for HOST_B. Они показаны в следующем разделе примеров.These steps are illustrated in the following Example section.

ПримерExample

В следующем примере показано конфигурирование исходящих соединений на HOST_Б.The following example demonstrates configuring HOST_B for outbound connections.

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.  

Скопируйте этот сертификат в другую систему любым безопасным способом.Copy the certificate to the other system using any secure method you choose. Отнеситесь с особым вниманием к хранению сертификатов в безопасном месте.Be extremely careful to keep all of your certificates secure.

Важно!

После настройки исходящих соединений необходимо настроить входящие соединения на каждом экземпляре сервера для остальных экземпляров сервера.After you set up outbound connections, you must configure inbound connections on each server instance for the other server instance or instances. Дополнительные сведения см. в разделе Включение использования сертификатов для входящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Inbound Connections (Transact-SQL).

Дополнительные сведения о создании зеркальной базы данных, содержащей пример Transact-SQL, см. в разделе Подготовка зеркальной базы данных к зеркальному отображению (SQL Server).For information on creating a mirror database, including a Transact-SQL example, see Prepare a Mirror Database for Mirroring (SQL Server).

Пример Transact-SQL, устанавливающий сеанс в режиме высокой производительности, см. в разделе Пример. Настройка зеркального отображения с помощью сертификатов (Transact-SQL).For a Transact-SQL example of establishing a high-performance mode session, see Example: Setting Up Database Mirroring Using Certificates (Transact-SQL).

Безопасность .NET Framework.NET Framework Security

За исключением случаев, когда сеть гарантированно защищена, рекомендуется для соединений зеркального отображения базы данных применять шифрование.Unless you can guarantee that your network is secure, we recommend that you use encryption for database mirroring connections.

При копировании сертификата на другую систему используйте безопасный метод копирования.When copying a certificate to another system, use a secure copy method.

См. также:See Also

Выбор алгоритма шифрования Choose an Encryption Algorithm
Подготовка зеркальной базы данных к зеркальному отображению (SQL Server) Prepare a Mirror Database for Mirroring (SQL Server)
ALTER ENDPOINT (Transact-SQL) ALTER ENDPOINT (Transact-SQL)
Пример. Настройка зеркального отображения с помощью сертификатов (Transact-SQL) Example: Setting Up Database Mirroring Using Certificates (Transact-SQL)
Конечная точка зеркального отображения базы данных (SQL Server) The Database Mirroring Endpoint (SQL Server)
Диагностика конфигурации зеркального отображения базы данных (SQL Server) Troubleshoot Database Mirroring Configuration (SQL Server)
Настройка зашифрованной зеркальной базы данныхSet Up an Encrypted Mirror Database