Как просмотреть и изменить параметры безопасности репликации (программирование репликации на языке Transact-SQL)

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

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

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

Примечание по безопасностиПримечание по безопасности

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

Изменение всех экземпляров сохраненного пароля на сервере репликации

  1. На сервере базы данных master в топологии репликации выполните хранимую процедуру sp_changereplicationserverpasswords. Укажите учетную запись Microsoft Windows или имя входа Microsoft SQL Server в параметре @login и новый пароль в параметре @password. В результате выполнения этой операции производится изменение всех экземпляров пароля, используемого всеми агентами сервера для соединения с другими серверами топологии.

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

    Чтобы изменить имя входа и пароль для соединения с определенным сервером топологии (например с сервером распространителя или подписчика), необходимо задать его имя в параметре @server.

  2. Повторите шаг 1 на каждом из серверов в топологии репликации, где необходимо изменить пароль.

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

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

Изменение настроек безопасности для агента моментальных снимков

  1. На издателе выполните хранимую процедуру sp_helppublication_snapshot, задав значение параметра @publication. Она возвращает текущие параметры безопасности агента моментальных снимков.

  2. На издателе выполните хранимую процедуру sp_changepublication_snapshot, указав значение параметра @publication, а также один или несколько следующих параметров безопасности.

    • Чтобы изменить учетную запись Windows, с которой работает агент, или изменить пароль для этой учетной записи, задайте параметры @job_login и @job_password.

    • Чтобы изменить режим безопасности, который используется для соединения с издателем, укажите значение 1 или 0 в параметре @publisher_security_mode.

    • Когда режим безопасности, используемый для соединения с издателем, меняется с 1 на 0 или когда меняется имя входа SQL Server, используемое для этого соединения, укажите параметры @publisher_login и @publisher_password.

    Примечание по безопасностиПримечание по безопасности

    При настройке издателя с удаленным распространителем значения, задаваемые для всех аргументов, включая job_login и job_password, отправляются распространителю открытым текстом. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Шифрование соединений с SQL Server.

Изменение настроек безопасности для агента чтения журнала

  1. На издателе выполните хранимую процедуру sp_helplogreader_agent, задав значение параметра @publisher. Она возвращает текущие параметры безопасности агента чтения журнала.

  2. На издателе выполните хранимую процедуру sp_changelogreader_agent, задав значение параметра @publication, а также один или несколько следующих параметров безопасности.

    • Чтобы изменить учетную запись Windows, с которой работает агент, или изменить пароль для этой учетной записи, задайте параметры @job_login и @job_password.

    • Чтобы изменить режим безопасности, который используется для соединения с издателем, укажите значение 1 или 0 в параметре @publisher_security_mode.

    • Когда режим безопасности, используемый для соединения с издателем, меняется с 1 на 0 или когда меняется имя входа SQL Server, используемое для этого соединения, укажите параметры @publisher_login и @publisher_password.

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

    После изменения имени входа или пароля агента необходимо остановить и перезапустить агент, чтобы изменения вступили в силу.

    Примечание по безопасностиПримечание по безопасности

    При настройке издателя с удаленным распространителем значения, задаваемые для всех аргументов, включая job_login и job_password, отправляются распространителю открытым текстом. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Шифрование соединений с SQL Server.

Изменение настроек безопасности агента распространителя для принудительной подписки

  1. На издателе в базе данных публикации выполните хранимую процедуру sp_helpsubscription, указав параметры @publication и @subscriber. Она возвращает свойства подписки, включая параметры безопасности агента распространителя на распространителе.

  2. На издателе в базе данных публикации выполните хранимую процедуру sp_changesubscription, указав параметры @publication, @subscriber и @subscriber_db, значение all в параметре @article, а также имя параметра безопасности в параметре @property и его новое значения в параметре @value.

  3. Повторите шаг 2 для каждого из следующих свойств безопасности, которые подвергаются изменениям.

    • Чтобы изменить учетную запись Windows, с которой работает агент, или пароль для этой учетной записи, укажите значение distrib_job_password в параметре @property и задайте новый пароль в параметре @value. Если изменяется учетная запись, повторите шаг 2, указав значение distrib_job_login в параметре @property и новую учетную запись Windows в параметре @value.

    • Чтобы изменить режим безопасности, который используется для соединения с подписчиком, задайте значение subscriber_security_mode в параметре @property и значение 1 (встроенная проверка подлинности Windows) или 0 (проверка подлинности SQL Server) в параметре @value.

    • Если режим безопасности подписчика заменяется на проверку подлинности SQL Server или если меняются данные входа для проверки подлинности SQL Server, укажите значение subscriber_password в параметре @property и задайте новый пароль в параметре @value. Повторите шаг 2, указав значение subscriber_login в параметре @property и задав новое имя входа в параметре @value.

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

    После изменения имени входа или пароля агента необходимо остановить и перезапустить агент, чтобы изменения вступили в силу.

    Примечание по безопасностиПримечание по безопасности

    При настройке издателя с удаленным распространителем значения, передаваемые для всех аргументов, включая distrib_job_login и distrib_job_password, передаются распространителю в виде обычного текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Шифрование соединений с SQL Server.

Изменение настроек безопасности агента распространителя для подписки по запросу

  1. На подписчике выполните хранимую процедуру sp_helppullsubscription, указав параметр @publication. Она возвращает список свойств подписки, включая параметры безопасности агента распространителя на подписчике.

  2. Выполните процедуру sp_change_subscription_properties на подписчике в базе данных подписки, указав параметры @publisher, @publisher_db, @publication, имя свойства безопасности в параметре @property и новое значение свойства в параметре @value.

  3. Повторите шаг 2 для каждого из следующих свойств безопасности, которые подвергаются изменениям.

    • Чтобы изменить учетную запись Windows, с которой работает агент, или пароль для этой учетной записи, укажите значение distrib_job_password в параметре @property и задайте новый пароль в параметре @value. Если изменяется учетная запись, повторите шаг 2, указав значение distrib_job_login в параметре @property и новую учетную запись Windows в параметре @value.

    • Чтобы изменить режим безопасности, используемый для соединения с распространителем, укажите значение distributor_security_mode в параметре @property и значение 1 (встроенная проверка подлинности Windows) или 0 (проверка подлинности SQL Server) в параметре @value.

    • Если режим безопасности распространителя меняется на проверку подлинности SQL Server или если меняются данные входа для проверки подлинности SQL Server, укажите значение distributor_password в параметре @property и задайте новый пароль в параметре @value. Повторите шаг 2, указав значение distributor_login в параметре @property и задав новое имя входа в параметре @value.

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

    После изменения имени входа или пароля агента необходимо остановить и перезапустить агент, чтобы изменения вступили в силу.

Изменение настроек безопасности агента слияния для принудительной подписки

  1. На издателе в базе данных публикаций выполните хранимую процедуру sp_helpmergesubscription, указав параметры @publication, @subscriber и @subscriber_db. Она возвращает свойства подписки, включая параметры безопасности агента слияния на распространителе.

  2. На издателе в базе данных публикаций выполните хранимую процедуру sp_changemergesubscription, указав параметры @publication, @subscriber, @subscriber_db, имя параметра безопасности в параметре @property и его новое значение в параметре @value.

  3. Повторите шаг 2 для каждого из следующих свойств безопасности, которые подвергаются изменениям.

    • Чтобы изменить учетную запись Windows, от которой запускается агент (или только пароль для нее), укажите значение merge_job_password в параметре @property и новый пароль в параметре @value. Чтобы изменить саму учетную запись, повторите шаг 2, указав значение merge_job_password в параметре @property и новую учетную запись Windows в параметре @value.

    • Чтобы изменить режим безопасности, который используется для соединения с подписчиком, задайте значение subscriber_security_mode в параметре @property и значение 1 (встроенная проверка подлинности Windows) или 0 (проверка подлинности SQL Server) в параметре @value.

    • Если режим безопасности подписчика меняется на проверку подлинности SQL Server или если меняются данные входа для проверки подлинности SQL Server, укажите значение subscriber_password в параметре @property и задайте новый пароль в параметре @value. Повторите шаг 2, указав значение subscriber_login в параметре @property и задав новое имя входа в параметре @value.

    • Чтобы изменить режим безопасности, используемый для соединения с издателем, укажите значение publisher_security_mode в параметре @property и значение 1 (встроенная проверка подлинности Windows) или 0 (проверка подлинности SQL Server) в параметре @value.

    • При переключении режима безопасности издателя на проверку подлинности SQL Server или сведений об имени входа для нее задайте значение publisher_password в параметре @property и новый пароль в параметре @value. Повторите шаг 2, указав значение publisher_login в параметре @property и задав новое имя входа в параметре @value.

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

    После изменения имени входа или пароля агента необходимо остановить и перезапустить агент, чтобы изменения вступили в силу.

    Примечание по безопасностиПримечание по безопасности

    При настройке издателя для работы с удаленным распространителем все передаваемые значения свойств, включая merge_job_login и merge_job_password, передаются распространителю в виде обычного текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Шифрование соединений с SQL Server.

Изменение настроек безопасности агента слияния для подписки по запросу

  1. На подписчике выполните хранимую процедуру sp_helpmergepullsubscription, указав параметр @publication. Она возвращает свойства подписки, включая параметры безопасности агента слияния на подписчике.

  2. Выполните процедуру sp_change_subscription_properties на подписчике в базе данных подписки, указав параметры @publisher, @publisher_db, @publication, имя свойства безопасности в параметре @property и новое значение свойства в параметре @value.

  3. Повторите шаг 2 для каждого из следующих свойств безопасности, которые подвергаются изменениям.

    • Чтобы изменить учетную запись Windows, от которой запускается агент (или только пароль для нее), задайте значение merge_job_password в параметре @property и новый пароль в параметре @value. Чтобы изменить саму учетную запись, повторите шаг 2, указав значение merge_job_password в параметре @property и новую учетную запись Windows в параметре @value.

    • Чтобы изменить режим безопасности, используемый для соединения с распространителем, укажите значение distributor_security_mode в параметре @property и значение 1 (встроенная проверка подлинности Windows) или 0 (проверка подлинности SQL Server) в параметре @value.

    • Если режим безопасности распространителя меняется на проверку подлинности SQL Server или если меняются данные входа для проверки подлинности SQL Server, укажите значение distributor_password в параметре @property и задайте новый пароль в параметре @value. Повторите шаг 2, указав значение distributor_login в параметре @property и задав новое имя входа в параметре @value.

    • Чтобы изменить режим безопасности, используемый для соединения с издателем, укажите значение publisher_security_mode в параметре @property и значение 1 (встроенная проверка подлинности Windows) или 0 (проверка подлинности SQL Server) в параметре @value.

    • При переключении режима безопасности издателя на проверку подлинности SQL Server или сведений об имени входа для нее задайте значение publisher_password в параметре @property и новый пароль в параметре @value. Повторите шаг 2, указав значение publisher_login в параметре @property и задав новое имя входа в параметре @value.

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

    После изменения имени входа или пароля агента необходимо остановить и перезапустить агент, чтобы изменения вступили в силу.

Изменение параметров безопасности агента моментальных снимков для создания моментального снимка с фильтрацией для подписчика

  1. На издателе выполните хранимую процедуру sp_helpdynamicsnapshot_job, указав значение параметра @publication. В результирующем наборе запомните значение параметра job_name, соответствующее которому задание будет изменять секцию подписчика.

  2. На издателе выполните хранимую процедуру sp_changedynamicsnapshot_job, задав параметр @publication и указав полученное на шаге 1 значение в параметре @dynamic_snapshot_jobname, а также новый пароль в параметре @job_password либо введя имя входа и пароль учетной записи Windows, от которой запущен агент, в параметрах @job_login и @job_password соответственно.

    Примечание по безопасностиПримечание по безопасности

    При настройке издателя с удаленным распространителем значения, задаваемые для всех аргументов, включая job_login и job_password, отправляются распространителю открытым текстом. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в разделе Шифрование соединений с SQL Server.

Изменение параметров безопасности для агента чтения очереди

  1. На распространителе выполните хранимую процедуру sp_helpqreader_agent. Она возвращает текущую учетную запись Windows, от которой запускается агент чтения очереди.

    • На издателе выполните хранимую процедуру sp_changeqreader_agent, указав параметры учетной записи Windows в полях @publication и @job_passwsord.
    ПримечаниеПримечание

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

  2. Агент чтения очереди подключается к подписчику с тем же контекстом соединения, который используется агентом распространителя для подписки.

Смена текущего режима безопасности, используемого при немедленном обновлении подписчика при соединении с издателем

  • В базе данных подписки на подписчике выполните процедуру sp_link_publication. Укажите параметр @publisher, параметр @publication, имя базы данных публикации в параметре @publisher_db и одно из следующих значений в параметре @security_mode.

    • 0 — использовать проверку подлинности SQL Server при выполнении обновлений на издателе. При этом необходимо указать допустимое имя входа на издатель в параметрах @login и @password.

    • 1 — при соединении с издателем использовать контекст безопасности пользователя, вносящего изменения на подписчике. Связанные с этим режимом безопасности ограничения см. в разделе sp_link_publication.

    • 2 — использовать существующее, определенное пользователем имя входа связанного сервера, созданное с помощью хранимой процедуры sp_addlinkedserver (Transact-SQL).

Смена пароля для удаленного распространителя

  1. На распространителе в базе данных распространителя выполните хранимую процедуру sp_changedistributor_password, указав новый пароль для текущего имени входа в параметре @password.

    Важное примечаниеВажно!

    Напрямую менять пароль для имени входа distributor_admin не рекомендуется.

  2. На каждом издателе, связанном с этим удаленным распространителем, выполните хранимую процедуру sp_changedistributor_password, указав заданный на шаге 1 пароль в параметре @password.