Смягчение угроз и уязвимостей (репликация)

Область применения: SQL Server Управляемый экземпляр SQL Azure

В этом разделе приводятся методы снижения угроз для топологии репликации.

Шифрование

Шифрование представляет собой процесс преобразования данных в форму, которую невозможно прочитать без специального ключа, поэтому прочитать данные могут только назначенные пользователи. Репликация не производит шифрование данных, хранящихся в таблицах или передаваемых через сетевые соединения. Это сделано намеренно, поскольку шифрование доступно на транспортном уровне с помощью ряда технологий, включая следующие стандартные для отрасли технологии: виртуальные частные сети (VPN), протокол Transport Layer Security (TLS), ранее известный как Secure Sockets Layer (SSL), и IPsec. Для соединений между компьютерами в топологии репликации рекомендуется использовать один из этих методов. Дополнительные сведения см. в статье Включение шифрования соединений в компоненте ядро СУБД (диспетчер конфигурации SQL Server). Сведения об использовании VPN и TLS для репликации данных через Интернет см. в разделе Защита репликации через Интернет.

Если используется протокол TLS для защиты соединений между компьютерами в топологии репликации, задайте значение 1 или 2 для параметра -EncryptionLevel каждого агента репликации (рекомендуется значение 2). Значение 1 указывает, что шифрование будет использоваться, но агент не будет проверять, подписан ли TLS/SSL-сертификат сервера доверенным издателем; значение 2 указывает, что будет проверяться подпись сертификата. Параметры агента могут задаваться в профилях агента или в командной строке. Дополнительные сведения см. в разделе:

Репликация взаимодействует с главными ключами базы данных, которые используются для шифрования данных, следующим образом.

  • Если главный ключ присутствует в базе данных, связанной с репликацией (базой данных публикации, базой данных подписки или базой данных распространителя), репликация шифрует и расшифровывает пароли агента в этой базе данных с помощью симметричного ключа базы данных SQL Server 2012 (11.x). Если используются главные ключи, то их необходимо создать во всех базах данных, участвующих в репликации. Дополнительные сведения о создании главных ключей см. в разделе CREATE MASTER KEY (Transact-SQL).

  • При репликации главные ключи не реплицируются. Если главный ключ требуется у подписчика, необходимо экспортировать его из базы данных публикации с помощью BACKUPBACKUP MASTER KEY, а затем импортировать его в базу данных подписки с помощью RESTORERESTORE MASTER KEY. Дополнительные сведения см. в статьях BACKUP MASTER KEY (Transact-SQL) и RESTORE MASTER KEY (Transact-SQL).

  • Если главный ключ определен для присоединенной базы данных подписки, укажите пароль главного ключа с помощью @db_master_key_password параметра sp_attachsubscription (Transact-SQL). Это позволяет подключить базу данных на стороне подписчика.

Дополнительные сведения о шифровании и главных ключах см. в разделе Encryption Hierarchy.

Репликация позволяет публиковать данные зашифрованных столбцов. Для расшифровки и использования этих данных на подписчике ключ, который был использован при шифровании данных на издателе, должен также располагаться и на подписчике. Репликация не предоставляет безопасного механизма для передачи ключей шифрования. Необходимо вручную повторно создать ключ шифрования у подписчика. Дополнительные сведения см. в разделе "Репликация данных в зашифрованных столбцах" (SQL Server Management Studio).

Поддержка TLS 1.3

SQL Server 2025 (17.x) и более поздних версий поддерживает TLS 1.3 для подключений репликации, инициализированных агентами, настроенными для запуска в SQL Server 2025. Это относится к топологии репликации, включающей SQL Server и Управляемый экземпляр SQL.

Если вы используете TLS 1.3 для защиты подключений между экземплярами в топологии репликации, укажите значение 3 или 4 для -EncryptionLevel параметра каждого агента репликации:

Значение 3 обеспечивает использование только подключений TLS 1.3 к управляемым экземплярам SQL, но не оказывает влияния на подключения к экземплярам SQL Server. Значение 4 включает TLS 1.3 для исходящих подключений, инициируемых Управляемым экземпляром SQL или SQL Server 2025 (17.x) и более поздними версиями, к другим экземплярам SQL Server или Управляемым экземплярам SQL. Для подключений, предназначенных для SQL Server (любая поддерживаемая версия), необходимо установить соответствующий сертификат на целевом узле SQL Server.