Заметка
Доступ к этой странице требует авторизации. Вы можете попробовать войти в систему или изменить каталог.
Доступ к этой странице требует авторизации. Вы можете попробовать сменить директорию.
В этом примере показаны все этапы, необходимые для создания сеанса зеркального отображения базы данных с помощью проверки подлинности на основе сертификатов. Примеры, приведенные в этом разделе, используют 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.
USE master; CREATE MASTER KEY ENCRYPTION BY PASSWORD = '<1_Strong_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.
USE master; CREATE LOGIN HOST_B_login WITH PASSWORD = '1Sample_Strong_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 transacton safety. ALTER DATABASE AdventureWorks SET PARTNER SAFETY OFF GOЗамечание
Если вы планируете работать в режиме высокой безопасности с автоматическим переключением на резервный сервер, оставьте значение безопасности транзакций FULL (параметр по умолчанию) и добавьте наблюдателя как можно скорее после выполнения второй инструкции SET PARTNER "
partner_server". Обратите внимание, что свидетель сначала должен быть настроен для исходящего и входящего подключения.
Связанные задачи
Подготовка зеркальной базы данных для зеркального отображения (SQL Server)
Управление именами входа и заданиями после переключения ролей (SQL Server)
Диагностика конфигурации зеркального отображения базы данных (SQL Server)
См. также
Транспортная безопасность для зеркального отображения базы данных и групп доступности Always On (SQL Server)
Указание сетевого адреса сервера (зеркальное отображение базы данных)
Конечная точка зеркального отображения базы данных (SQL Server)
Использование сертификатов для конечной точки зеркального отображения базы данных (Transact-SQL)
Изменить базу данных (Transact-SQL)
Центр безопасности для ядра СУБД SQL Server и Базы данных Azure SQL