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

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

Процесс настройки входящих соединений состоит из следующих основных шагов:

  1. Создайте имя входа для другой системы.

  2. Создайте пользователя для этого имени входа.

  3. Получите сертификат для конечной точки зеркального отображения другого экземпляра сервера.

  4. Свяжите сертификат с пользователем, созданным на шаге 2.

  5. Предоставьте данному имени входа разрешение CONNECT на эту конечную точку зеркального отображения.

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

Ниже эти шаги описаны подробно. Для каждого шага приведен пример настройки экземпляра сервера в системе с именем HOST_A. В соответствующем разделе «Пример» показаны те же шаги для другого экземпляра сервера в системе с именем HOST_B.

Настройка экземпляров сервера на входящие соединения зеркального отображения (на узле HOST_A)

  1. Создайте имя входа для другой системы.

    В следующем примере в базе данных master экземпляра сервера на узле HOST_А создается имя входа для системы HOST_B; созданное имя входа называется HOST_B_login. Подставьте в пример свой собственный пароль.

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

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

    Чтобы просмотреть имена входа для данного экземпляра сервера, необходимо выполнить следующую инструкцию Transact-SQL:

    SELECT * FROM sys.server_principals
    

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

  2. Создайте пользователя для этого имени входа.

    В следующем примере для имени входа, созданного на предыдущем шаге, создается пользователь HOST_B_user.

    USE master;
    CREATE USER HOST_B_user FOR LOGIN HOST_B_login;
    GO
    

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

    Чтобы просмотреть пользователей данного экземпляра сервера, необходимо выполнить следующую инструкцию Transact-SQL:

    SELECT * FROM sys.sysusers;
    

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

  3. Получите сертификат для конечной точки зеркального отображения другого экземпляра сервера.

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

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

  4. Свяжите сертификат с пользователем, созданным на шаге 2.

    В следующем примере сертификат узла HOST_B связывается с соответствующим пользователем на узле HOST_А.

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

    Дополнительные сведения см. в разделе Инструкция CREATE CERTIFICATE (Transact-SQL).

    Чтобы просмотреть сертификаты данного экземпляра сервера, необходимо выполнить следующую инструкцию Transact-SQL:

    SELECT * FROM sys.certificates
    

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

  5. Предоставьте данной учетной записи разрешение CONNECT на эту удаленную конечную точку зеркального отображения.

    Например, чтобы предоставить разрешение HOST_A удаленному экземпляру сервера на HOST_B для подключения к его локальной учетной записи, то есть подключиться к HOST_B_login, необходимо выполнить следующие инструкции Transact-SQL:

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

    Дополнительные сведения см. в разделе GRANT, предоставление разрешений на конечные точки (Transact-SQL).

Настройка проверки подлинности сертификата, выданного узлу HOST_B для входа в систему HOST_A, завершена.

Необходимо выполнить аналогичные шаги для настройки входящего соединения от узла HOST_A к узлу HOST_B. Они перечислены ниже в разделе «Примеры» и проиллюстрированы в части входящих соединений, описанных в примере.

Пример

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

ПримечаниеПримечание

В примере используется файл, в котором содержится сертификат узла HOST_A, созданный фрагментом кода из раздела Как включить использование сертификатов для исходящих соединений при зеркальном отображении базы данных (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

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

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

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

Безопасность

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