Использование сертификатов для входящих соединений при зеркальном отображении базы данныхDatabase Mirroring - Use Certificates for Inbound 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 inbound connections for database mirroring. Перед настройкой входящих соединений необходимо настроить исходящие соединения на каждом экземпляре сервера.Before you can set up inbound connections, you must configure outbound connections on each server instance. Дополнительные сведения см. в разделе Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).For more information, see Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

Процесс настройки входящих соединений состоит из следующих основных шагов:The process of configuring inbound connections, involves the following general steps:

  1. Создайте имя входа для другой системы.Create a login for other system.

  2. Создайте пользователя для этого имени входа.Create a user for that login.

  3. Получите сертификат для конечной точки зеркального отображения другого экземпляра сервера.Obtain the certificate for the mirroring endpoint of the other server instance.

  4. Свяжите сертификат с пользователем, созданным на шаге 2.Associate the certificate with the user created in step 2.

  5. Предоставьте этому имени входа разрешение CONNECT на эту конечную точку зеркального отображения.Grant CONNECT permission on the login for that mirroring endpoint.

Если имеется следящий сервер, для него также необходимо настроить входящие соединения.If there is a witness, you must also set up inbound connections for it. Для этого нужно настроить имена входа, пользователей и сертификаты для следящего сервера на обоих участниках, и наоборот.This requires setting up logins, users, and certificates for the witness on both of the partners, and vice versa.

Ниже эти шаги описаны подробно.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.

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

  1. Создайте имя входа для другой системы.Create a login for the other system.

    В следующем примере в базе данных master экземпляра сервера на узле HOST_А создается имя входа для системы HOST_B; созданное имя входа называется HOST_B_login.The following example creates a login for the system, HOST_B, in the master database of the server instance on HOST_A; in this example, the login is named HOST_B_login. Подставьте в пример свой собственный пароль.Substitute a password of your own for the sample password.

    USE master;  
    CREATE LOGIN HOST_B_login   
       WITH PASSWORD = '1Sample_Strong_Password!@#';  
    GO  
    

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

    Чтобы просмотреть имена входа для данного экземпляра сервера, необходимо выполнить следующую инструкцию Transact-SQLTransact-SQL:To view the logins on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.server_principals  
    

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

  2. Создайте пользователя для этого имени входа.Create a user for that login.

    В следующем примере для имени входа, созданного на предыдущем шаге, создается пользователь HOST_B_user.The following example creates a user, HOST_B_user, for the login created in the preceding step.

    USE master;  
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;  
    GO  
    

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

    Чтобы просмотреть пользователей данного экземпляра сервера, необходимо выполнить следующую инструкцию Transact-SQLTransact-SQL:To view the users on this server instance, you can use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.sysusers;  
    

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

  3. Получите сертификат для конечной точки зеркального отображения другого экземпляра сервера.Obtain the certificate for the mirroring endpoint of the other server instance.

    Необходимо получить копию сертификата для конечной точки зеркального отображения удаленного экземпляра сервера, если это еще не было сделано во время настройки исходящих соединений.If you have not already done so when configuring outbound connections, obtain a copy of the certificate for the mirroring endpoint of the remote server instance. Для этого создайте резервную копию сертификата в соответствующем экземпляре сервера, как описано в разделе Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).To do this, back up the certificate on that server instance as described in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL). При копировании сертификата на другую систему используйте безопасный метод копирования.When copying a certificate to another system, use a secure copy method. Отнеситесь с особым вниманием к хранению сертификатов в безопасном месте.Be extremely careful to keep all of your certificates secure.

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

  4. Свяжите сертификат с пользователем, созданным на шаге 2.Associate the certificate with the user created in step 2.

    В следующем примере сертификат узла HOST_B связывается с соответствующим пользователем на узле HOST_А.The following example, associates the certificate of HOST_B with its user on HOST_A.

    USE master;  
    CREATE CERTIFICATE HOST_B_cert  
       AUTHORIZATION HOST_B_user  
       FROM FILE = 'C:\HOST_B_cert.cer'  
    GO  
    

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

    Чтобы просмотреть сертификаты данного экземпляра сервера, необходимо выполнить следующую инструкцию Transact-SQLTransact-SQL:To view the certificates on this server instance, use the following Transact-SQLTransact-SQL statement:

    SELECT * FROM sys.certificates  
    

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

  5. Предоставьте данной учетной записи разрешение CONNECT на эту удаленную конечную точку зеркального отображения.Grant CONNECT permission on the login for the remote mirroring endpoint.

    Например, чтобы предоставить разрешение HOST_A удаленному экземпляру сервера на HOST_B для подключения к его локальной учетной записи, то есть подключиться к HOST_B_login, необходимо выполнить следующие инструкции Transact-SQLTransact-SQL.For example, to grant permission on HOST_A to the remote server instance on HOST_B to connect to its local login-that is, to connect to HOST_B_login-use the following Transact-SQLTransact-SQL statements:

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

    Дополнительные сведения см. в разделе GRANT, предоставление разрешений на конечную точку (Transact-SQL).For more information, see GRANT Endpoint Permissions (Transact-SQL).

Настройка проверки подлинности сертификата, выданного узлу HOST_B для входа в систему HOST_A, завершена.This completes setting up certificate authentication for HOST_B to log in to HOST_A.

Необходимо выполнить аналогичные шаги для настройки входящего соединения от узла HOST_A к узлу HOST_B.You now need to perform the equivalent inbound steps for HOST_A on HOST_B. Они перечислены ниже в разделе «Примеры» и проиллюстрированы в части входящих соединений, описанных в примере.These steps are illustrated in the inbound portion of the example in the Example section, below.

ПримерExample

В следующем примере показано, как настроить узел HOST_B для входящих соединений.The following example demonstrates configuring HOST_B for inbound connections.

Примечание

В этом примере используется файл сертификата, содержащий сертификата HOST_A, который создан фрагментом кода из раздела Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).This example uses a certificate file containing the HOST_A certificate that is created by a code snippet in Allow a Database Mirroring Endpoint to Use Certificates for Outbound Connections (Transact-SQL).

USE master;  
--On HOST_B, create a login for HOST_A.  
CREATE LOGIN HOST_A_login WITH PASSWORD = 'AStrongPassword!@#';  
GO  
--Create a user, HOST_A_user, for that login.  
CREATE USER HOST_A_user FOR LOGIN HOST_A_login  
GO  
--Obtain HOST_A certificate. (See the note   
--   preceding this example.)  
--Asscociate this certificate with the user, HOST_A_user.  
CREATE CERTIFICATE HOST_A_cert  
   AUTHORIZATION HOST_A_user  
   FROM FILE = 'C:\HOST_A_cert.cer';  
GO  
--Grant CONNECT permission for the server instance on HOST_A.  
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO HOST_A_login  
GO  

Если предполагается работа в режиме высокого уровня безопасности с автоматическим переходом на другой ресурс, необходимо повторить те же самые этапы для настройки следящего сервера на входящие и исходящие соединения.If you intend to run in high-safety mode with automatic failover, you must repeat the same set up steps to configure the witness for outbound and inbound connections.

Дополнительные сведения о создании зеркальной базы данных, содержащей пример 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

При копировании сертификата на другую систему используйте безопасный метод копирования.When copying a certificate to another system, use a secure copy method. Отнеситесь с особым вниманием к хранению сертификатов в безопасном месте.Be extremely careful to keep all of your certificates secure.

См. также:See Also

Безопасность транспорта для зеркального отображения баз данных и групп доступности AlwaysOn (SQL Server) Transport Security for Database Mirroring and Always On Availability Groups (SQL Server)
GRANT, предоставление разрешений конечной точке (Transact-SQL) GRANT Endpoint Permissions (Transact-SQL)
Настройка зашифрованной зеркальной базы данных Set Up an Encrypted Mirror Database
Конечная точка зеркального отображения базы данных (SQL Server) The Database Mirroring Endpoint (SQL Server)
Диагностика конфигурации зеркального отображения базы данных (SQL Server)Troubleshoot Database Mirroring Configuration (SQL Server)