Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
В этом примере описаны все действия, выполняемые при создании сеанса зеркального отображения базы данных с использованием проверки подлинности на основе сертификатов. В примерах в этом подразделе используется язык Transact-SQL. За исключением случаев, когда сеть гарантированно защищена, рекомендуется для соединений зеркального отображения базы данных применять шифрование.
При копировании сертификата на другую систему используйте безопасный метод копирования. Отнеситесь с особым вниманием к хранению сертификатов в безопасном месте.
Пример
В следующем примере показано, что необходимо сделать на одном партнёре, размещённом на HOST_A. В этом примере два участника являются экземплярами сервера по умолчанию в трех компьютерных системах. Два экземпляра сервера запущены в ненадежных доменах Windows, поэтому необходима проверка подлинности на основе сертификата.
Начальная основная роль принимается узлом HOST_A, а зеркальная роль — узлом HOST_B.
Настройка зеркального отображения базы данных с помощью сертификатов состоит из четырех основных этапов, три из которых — 1, 2 и 4 — показаны в этом примере. Ниже приведены эти этапы.
Настройка исходящих соединений
В этом примере приводится пошаговое описание следующих процессов.
Настройка узла Host_A для исходящих соединений.
Настройка узла Host_B для исходящих соединений.
Сведения об этом этапе настройки зеркального отображения базы данных см. в статье Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).
-
В этом примере приводится пошаговое описание следующих процессов.
Настройка узла Host_A для входящих соединений.
Настройка узла Host_B для входящих соединений.
Сведения об этом этапе настройки зеркального отображения базы данных см. в статье Включение использования сертификатов для входящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).
Создание зеркальной базы данных
Дополнительные сведения о создании зеркальной базы данных см. в статье Подготовка зеркальной базы данных к зеркальному отображению (SQL Server).
Настройка исходящих соединений
Настройка узла Host_A для исходящих соединений
В базе данных master создайте, если это необходимо, главный ключ базы данных. Замените
<password>допустимым паролем.USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<password>'; GOСделайте сертификат для данного экземпляра сервера.
USE master; CREATE CERTIFICATE HOST_A_cert WITH SUBJECT = 'HOST_A certificate'; GOСоздайте конечную точку зеркалирования для экземпляра сервера с помощью сертификата.
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Создайте резервную копию сертификата HOST_A и скопируйте ее на другую систему HOST_B.
BACKUP CERTIFICATE HOST_A_cert TO FILE = 'C:\HOST_A_cert.cer'; GOИспользуя любой безопасный метод копирования, скопируйте файл C:\HOST_A_cert.cer на узел HOST_B.
Настройка узла Host_B для исходящих соединений
При необходимости создайте в главной базе данных главный ключ базы данных.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<Strong_Password_#2>'; GOСоздайте сертификат для экземпляра сервера HOST_B.
CREATE CERTIFICATE HOST_B_cert WITH SUBJECT = 'HOST_B certificate for database mirroring'; GOСоздайте конечную точку зеркалирования для экземпляра сервера на узле 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Создайте резервную копию сертификата HOST_B.
BACKUP CERTIFICATE HOST_B_cert TO FILE = 'C:\HOST_B_cert.cer'; GOИспользуя любой безопасный метод копирования, скопируйте файл C:\HOST_B_cert.cer на хост HOST_A.
Дополнительные сведения см. в разделе Включение использования сертификатов для исходящих соединений в конечной точке зеркального отображения базы данных (Transact-SQL).
Настройка входящих соединений
Настройка узла Host_A для входящих соединений
Создайте имя входа на узле HOST_A для узла HOST_B. Замените
<password>допустимым паролем.USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '<password>'; GO--Создайте пользователя для этого логина.
CREATE USER HOST_B_user FOR LOGIN HOST_B_login; GOСвяжите сертификат с пользователем.
CREATE CERTIFICATE HOST_B_cert AUTHORIZATION HOST_B_user FROM FILE = 'C:\HOST_B_cert.cer' GOПредоставьте имени входа разрешение CONNECT для удаленной конечной точки зеркального отображения.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_B_login]; GO
Настройка узла Host_B для входящих соединений
Создайте имя входа на узле HOST_B для узла HOST_A.
USE master; CREATE LOGIN HOST_A_login WITH PASSWORD = '=Sample#2_Strong_Password2'; GOСоздайте пользователя для этой учётной записи.
CREATE USER HOST_A_user FOR LOGIN HOST_A_login; GOСвяжите сертификат с пользователем.
CREATE CERTIFICATE HOST_A_cert AUTHORIZATION HOST_A_user FROM FILE = 'C:\HOST_A_cert.cer' GOПредоставьте имени входа разрешение CONNECT для удаленной конечной точки зеркального отображения.
GRANT CONNECT ON ENDPOINT::Endpoint_Mirroring TO [HOST_A_login]; GO
Внимание
Если планируется работа в режиме высокой безопасности с автоматическим переключением при отказе, необходимо повторить те же шаги настройки, чтобы настроить сервер-свидетель для исходящих и входящих подключений. При настройке входящих соединений с задействованным следящим сервером необходимо настроить имена входа и пользователей для следящего сервера на обоих участниках и для обоих участников на следящем сервере.
Дополнительные сведения см. в статье Настройка конечной точки зеркального отображения базы данных для использования сертификатов для входящих подключений (Transact-SQL).
Создание зеркальной базы данных
Дополнительные сведения о создании зеркальной базы данных см. в статье Подготовка зеркальной базы данных к зеркальному отображению (SQL Server).
Настройка партнёров по зеркалированию
На экземпляре зеркального сервера на 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В экземпляре основного сервера, расположенного на узле 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В этом примере предполагается, что сеанс будет выполнен в режиме высокой производительности. Чтобы настроить этот сеанс для использования режима высокой производительности, в экземпляре основного сервера (на узле HOST_A) установите безопасность транзакций в положение OFF.
--Change to high-performance mode by turning off transaction safety. ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF GOПримечание.
Если вы планируете работать в режиме высокой безопасности с автоматическим переключением при отказе, оставьте для параметра безопасности транзакций значение FULL (параметр по умолчанию) и как можно скорее после выполнения второго оператора SET PARTNER 'partner_server' добавьте свидетеля. Обратите внимание, что следящий сервер вначале нужно настроить для исходящих и входящих соединений.
Связанные задачи
Подготовка зеркальной базы данных для зеркального отображения (SQL Server)
Управление именами входа и заданиями после переключения ролей (SQL Server)
Диагностика конфигурации зеркального отображения базы данных (SQL Server)
См. также
Безопасность транспорта для зеркального отображения баз данных и групп доступности AlwaysOn (SQL Server)
Указание сетевого адреса сервера (зеркальное отображение базы данных)
Конечная точка зеркального отображения базы данных (SQL Server)
Использование сертификатов для конечной точки зеркального отображения базы данных (Transact-SQL)
ALTER DATABASE (Transact-SQL)
Центр безопасности для ядра СУБД SQL Server и Базы данных Azure SQL