Использование сертификатов для входящих соединений при зеркальном отображении базы данных
Область применения: SQL Server
В этом разделе описаны этапы настройки экземпляров сервера для использования сертификатов проверки подлинности входящих соединений при зеркальном отображении базы данных. Перед настройкой входящих соединений необходимо настроить исходящие соединения на каждом экземпляре сервера. Дополнительные сведения см. в разделе Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).
Процесс настройки входящих соединений состоит из следующих основных шагов:
Создайте имя входа для другой системы.
Создайте пользователя для этого имени входа.
Получите сертификат для конечной точки зеркального отображения другого экземпляра сервера.
Свяжите сертификат с пользователем, созданным на шаге 2.
Предоставьте этому имени входа разрешение CONNECT на эту конечную точку зеркального отображения.
Если имеется следящий сервер, для него также необходимо настроить входящие соединения. Для этого нужно настроить имена входа, пользователей и сертификаты для следящего сервера на обоих участниках, и наоборот.
Ниже эти шаги описаны подробно. Для каждого шага приведен пример настройки экземпляра сервера в системе с именем HOST_A. В соответствующем разделе «Пример» показаны те же шаги для другого экземпляра сервера в системе с именем HOST_B.
Настройка экземпляров сервера на входящие соединения зеркального отображения (на узле HOST_A)
Создайте имя входа для другой системы.
В следующем примере в базе данных 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).
Создайте пользователя для этого имени входа.
В следующем примере для имени входа, созданного на предыдущем шаге, создается пользователь
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).
Получите сертификат для конечной точки зеркального отображения другого экземпляра сервера.
Необходимо получить копию сертификата для конечной точки зеркального отображения удаленного экземпляра сервера, если это еще не было сделано во время настройки исходящих соединений. Для этого создайте резервную копию сертификата в соответствующем экземпляре сервера, как описано в статье Использование сертификатов для исходящих соединений при зеркальном отображении базы данных. При копировании сертификата на другую систему используйте безопасный метод копирования. Отнеситесь с особым вниманием к хранению сертификатов в безопасном месте.
Дополнительные сведения см. в статье BACKUP CERTIFICATE (Transact-SQL).
Свяжите сертификат с пользователем, созданным на шаге 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).
Предоставьте данной учетной записи разрешение 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, который создан фрагментом кода из статьи Использование сертификатов для исходящих соединений при зеркальном отображении базы данных.
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, см. в статье Подготовка зеркальной базы данных к зеркальному отображению (SQL Server).
Пример запроса Transact-SQL, устанавливающий сеанс с режимом высокой производительности, см. в статье Пример. Настройка зеркального отображения базы данных с помощью сертификатов (Transact-SQL).
Безопасность .NET Framework
При копировании сертификата на другую систему используйте безопасный метод копирования. Отнеситесь с особым вниманием к хранению сертификатов в безопасном месте.
См. также
Безопасность транспорта для зеркального отображения баз данных и групп доступности AlwaysOn (SQL Server)
Grant Endpoint Permissions (Transact-SQL)
Настройка зашифрованной зеркальной базы данных
Конечная точка зеркального отображения базы данных (SQL Server)
Диагностика конфигурации зеркального отображения базы данных (SQL Server)