Просмотр и изменение параметров безопасности репликации

Применимо к:SQL Server Управляемый экземпляр SQL Azure

В этом разделе описывается, как просматривать и изменять параметры безопасности реплика в SQL Server с помощью SQL Server Management Studio, Transact-SQL или объектов управления репликацией (RMO). Например, может потребоваться изменение подключения агента чтения журнала к издателю для использования проверки подлинности SQL Server вместо встроенной проверки подлинности Windows, или может потребоваться изменение учетных данных для запуска задания агента при изменении пароля учетной записи Windows. Дополнительные сведения о разрешениях, необходимых каждому агенту, см. в разделе Модель безопасности агента репликации.

В этом разделе

Перед началом

Ограничения

  • Какие именно хранимые процедуры для этого применяются, зависит от типа агента и соединения с сервером.

  • Используемые классы и свойства RMO зависят от типа агента и типа соединения с сервером.

Безопасность

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

Разрешения

Использование среды SQL Server Management Studio

Просмотр и изменение настроек безопасности осуществляется в следующих диалоговых окнах:

  1. Диалоговое окно "Обновить пароли репликации" , доступное из папки репликации SQL Server Management Studio. Если изменить пароль для учетной записи SQL Server или учетной записи Windows на сервере в топологии реплика tion, используйте это диалоговое окно, а не обновление пароля для каждого агента, использующего учетную запись. Если агенты на нескольких серверах используют одну и ту же учетную запись, то нужно подключиться к каждому из этих серверов и изменить пароль. Обновление пароля осуществляется везде, где его использует репликация. В других местах, например на связанных серверах, обновление пароля не происходит.

  2. Страница "Безопасность агента" диалогового окна "Свойства публикации — <публикация> ". Дополнительные сведения о доступе к этому диалоговому окну см. в разделе Просмотр и изменение свойств публикации.

  3. Диалоговое окно "Свойства подписки— <подписка> ". Дополнительные сведения о доступе к этому диалоговому окну см. в разделах Просмотр и изменение свойств принудительной подписки и Просмотр и изменение свойств подписки по запросу.

  4. Свойства распространителя — <свойства распространителя и базы данных распространителя> — <диалоговые окна базы данных>. Дополнительные сведения о доступе к этим диалоговым окнам см. в разделе Просмотр и изменение свойств издателя и распространителя.

  5. Диалоговое окно "Свойства издателя— <издатель> ". Дополнительные сведения о доступе к этому диалоговому окну см. в разделе Просмотр и изменение свойств издателя и распространителя.

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

  1. Если учетная запись является учетной записью SQL Server, то это диалоговое окно также изменит пароль для учетной записи SQL Server. Если учетная запись является учетной записью Windows, то нужно вначале изменить пароль в Windows. Дополнительные сведения см. в документации по Windows.

    Примечание.

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

  2. Подключение на сервер в SQL Server Management Studio, а затем разверните узел сервера.

  3. Щелкните правой кнопкой мыши папку Репликация , а затем щелкните Обновить пароли репликации.

  4. В диалоговом окне Обновление паролей репликации укажите учетную запись и новый пароль.

  5. Нажмите ОК.

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

  1. На странице "Безопасность агента" диалогового окна "Свойства публикации — публикация>" <нажмите кнопку "Безопасность Параметры" рядом с текстовым полем агент моментальных снимков.

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

    • Введите новую учетную запись Windows в текстовое поле Учетная запись агента .

    • Введите новый надежный пароль в текстовые поля Пароль и Подтверждение пароля .

  3. Укажите контекст, в условиях которого агент должен подключаться с распространителя к издателю. Если вы выбрали С использованием следующего имени входа SQL Server, то вы также должны задать имя входа:

    • Введите имя входа в текстовое поле Имя входа .

    • Введите новый надежный пароль в текстовые поля Пароль и Подтверждение пароля .

    Примечание.

    Если издатель является издателем Oracle, контекст подключения указывается в диалоговом окне "Свойства распространителя - <распространитель> ". Процедура изменения контекста приведена ниже.

  4. Нажмите ОК.

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

  1. На странице "Безопасность агента" диалогового окна "Свойства публикации — публикация>" <нажмите кнопку "Безопасность Параметры" рядом с текстовым полем агента чтения журналов.

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

    • Введите новую учетную запись Windows в текстовое поле Учетная запись агента .

    • Введите новый надежный пароль в текстовые поля Пароль и Подтверждение пароля .

  3. Укажите контекст, в условиях которого агент должен подключаться с распространителя к издателю. Если вы выбрали С использованием следующего имени входа SQL Server, то вы также должны задать имя входа:

    • Введите имя входа в текстовое поле Имя входа .

    • Введите новый надежный пароль в текстовые поля Пароль и Подтверждение пароля .

    Примечание.

    Если издатель является издателем Oracle, контекст подключения указывается в диалоговом окне "Свойства распространителя - <распространитель> ". Измените контекст с использованием следующей процедуры.

  4. Нажмите ОК.

    Примечание.

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

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

  1. На странице "Издатели" диалогового окна "Свойства распространителя - <распространитель>" нажмите кнопку свойств (...) рядом с издателем.

  2. В разделе Соединение агента с издателем задайте имя входа и пароль, используемые настроенной вами схемой административного пользователя репликации. Дополнительные сведения см. в статье Настройка издателя Oracle.

  3. Нажмите ОК.

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

  1. В диалоговом окне "Свойства подписки — <подписка>" на издателе можно внести следующие изменения:

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

    • Чтобы изменить контекст, в котором агент распространителя подключается к подписчику, щелкните строку Соединение с подписчиком, а затем нажмите кнопку свойств (...) в строке. Задайте контекст в диалоговом окне Ввод сведений о соединении .

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

  2. Нажмите ОК.

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

  1. В диалоговом окне "Свойства подписки — <подписка"> на подписчике можно внести следующие изменения:

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

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

    • Чтобы изменить контекст, в котором агент распространителя соединяется с распространителем, щелкните строку Соединение с распространителем, а затем нажмите кнопку свойств (...) в строке. Задайте контекст в диалоговом окне Ввод сведений о соединении .

  2. Нажмите ОК.

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

  1. В диалоговом окне "Свойства подписки — <подписка>" на издателе можно внести следующие изменения:

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

    • Чтобы изменить контекст, в котором агент слияния соединяется с подписчиком, щелкните строку Соединение с подписчиком, а затем нажмите кнопку свойств (...) в строке. Задайте контекст в диалоговом окне Ввод сведений о соединении .

  2. Нажмите ОК.

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

  1. В диалоговом окне "Свойства подписки — <подписка"> на подписчике можно внести следующие изменения:

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

    • Чтобы изменить контекст, в котором агент слияния подключается к издателю и распространителю, щелкните строку Соединение с издателем, а затем нажмите кнопку свойств (...) в строке. Задайте контекст в диалоговом окне Ввод сведений о соединении .

  2. Нажмите ОК.

Изменение учетной записи, под которой запускается агент чтения очереди

  1. На странице "Общие" диалогового окна "Свойства распространителя — <распространитель>" нажмите кнопку свойств (...) рядом с базой данных распространителя.

  2. В диалоговом окне "Свойства базы данных распространителя — база данных>" <нажмите кнопку "Безопасность Параметры" рядом с текстовым полем учетной записи процесса агента.

  3. В диалоговом окне Безопасность агента чтения очереди задайте учетную запись, под которой агент запускается и устанавливает соединение с распространителем:

    • Введите новую учетную запись Windows в текстовое поле Учетная запись процесса

    • Введите новый надежный пароль в текстовые поля Пароль и Подтверждение пароля .

  4. Нажмите ОК.

    Примечание.

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

Изменение контекста, под которым агент чтения очереди устанавливает соединения с издателем

  1. На странице "Издатели" диалогового окна "Свойства распространителя - <распространитель>" нажмите кнопку свойств (...) рядом с издателем.

  2. В разделе Соединение агента с издателем задайте значение Выполнять олицетворение учетной записи процесса агента или Проверка подлинности SQL Server для параметра Режим соединения агента . Если вы задали Проверка подлинности SQL Server, то также введите значения для Имя входа и Пароль.

  3. Нажмите ОК.

    Примечание.

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

Изменение контекста, под которым агент чтения очереди устанавливает соединения с подписчиком

  • Агент чтения очереди использует тот же контекст соединения, который используется агентом распространителя для подписки. Дополнительные сведения см. выше в описании процедуры для агента распространителя.

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

  1. В диалоговом окне "Свойства подписки — <подписка"> на подписчике щелкните строку издателя Подключение ion, а затем нажмите кнопку свойств (...) в строке.

  2. В диалоговом окне Ввод сведений о соединении выберите один из следующих параметров:

    • Использовать имя входа со связанного или удаленного сервера. Выберите этот параметр, если вы определили удаленный сервер или связанный сервер между подписчиком и издателем с помощью процедуры sp_addserver (Transact-SQL),sp_addlinkedserver (Transact-SQL), SQL Server Management Studio или другого метода.

    • Использовать проверку подлинности SQL Server со следующим именем входа и паролем. Выберите этот параметр, если вы не определили удаленный сервер или связанный сервер между подписчиком и издателем. Репликация создаст связанный сервер. Указанная учетная запись уже должна существовать на издателе.

  3. Нажмите ОК.

Примечание.

Данная процедура изменяет метод, используемый триггерами репликации для соединения между подписчиком и издателем при внесении изменений на подписчике. Также можно изменить настройки, связанные с агентом распространителя, для подписки, обновляемой немедленно. Дополнительные сведения см. в описании процедуры, приведенном выше в данном разделе.

Данная процедура применяется только к подпискам по запросу. Для push-подписок используйте хранимую процедуру sp_link_publication (Transact-SQL).

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

  1. На странице издателей диалогового окна "Свойства распространителя - <распространитель>" введите надежный пароль в текстовых полях "Пароль" и "Подтверждение пароля".

  2. Нажмите ОК.

  3. На странице "Общие" диалогового окна "Свойства издателя" — <"Издатель>" введите надежный пароль в текстовых полях "Пароль" и "Подтверждение пароля".

  4. Нажмите ОК.

Использование 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, передаются распространителю в формате обычного (незашифрованного) текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в статье Включение шифрования соединений в компоненте Database Engine (диспетчер конфигурации 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, передаются распространителю в формате обычного (незашифрованного) текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в статье Включение шифрования соединений в компоненте Database Engine (диспетчер конфигурации 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, передаются распространителю в виде обычного текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в статье Включение шифрования соединений в компоненте Database Engine (диспетчер конфигурации 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, передаются распространителю в виде обычного текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в статье Включение шифрования соединений в компоненте Database Engine (диспетчер конфигурации 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, передаются распространителю в формате обычного (незашифрованного) текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в статье Включение шифрования соединений в компоненте Database Engine (диспетчер конфигурации SQL Server).

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

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

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

    Примечание.

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

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

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

  1. В базе данных подписки на подписчике выполните процедуру 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.

При помощи объектов RMO

Важно!

По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. Если необходимо сохранить учетные данные, используйте криптографические службы, предоставляемые microsoft Windows платформа .NET Framework.

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

  1. Создайте соединение с сервером репликации с помощью класса ServerConnection .

  2. Создайте экземпляр класса ReplicationServer , используя соединение, созданное на шаге 1.

  3. Вызовите метод ChangeReplicationServerPasswords . Укажите следующие параметры:

    • security_mode — значение типа ReplicationSecurityMode , указывающее тип проверки подлинности, для которой изменяются все экземпляры пароля.

    • login — имя входа, для которого меняются все экземпляры пароля.

    • password — новое значение пароля.

      Важно!

      По возможности предлагайте пользователям вводить учетные данные системы безопасности во время выполнения приложения. Если необходимо хранить учетные данные, используйте службы шифрования , предоставляемые платформой Windows .NET Framework.

      Примечание.

      Только члены предопределенной роли сервера sysadmin могут вызвать этот метод.

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

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

  1. Создайте соединение с издателем с помощью класса ServerConnection .

  2. Создайте экземпляр класса TransSubscription.

  3. Установите для подписки свойства PublicationName, DatabaseName, SubscriberNameи SubscriptionDBName , а в качестве значения для свойства ConnectionContext укажите соединение, созданное на шаге 1.

  4. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращает значение false, то либо на шаге 3 были неверно определены свойства подписки, либо подписка не существует.

  5. В экземпляре TransSubscriptionзадайте одно или несколько из следующих свойств безопасности.

    • Чтобы изменить учетные данные для учетной записи Windows, с которой запускается агент, установите поля Login и Password свойства SynchronizationAgentProcessSecurity.

    • Чтобы при соединении агента с подписчиком использовать встроенную проверку подлинности Windows, установите в поле WindowsAuthentication свойства SubscriberSecurity значение true.

    • Чтобы при соединении агента с подписчиком использовать проверку подлинности SQL Server, установите в поле WindowsAuthentication свойства SubscriberSecurity значение falseи укажите учетные данные входа подписчика в полях SqlStandardLogin и SqlStandardPassword .

      Примечание.

      Агент всегда соединяется с распространителем с учетными данными Windows, указанными в свойстве SynchronizationAgentProcessSecurity. Эта учетная запись также используется для установления удаленных соединений с проверкой подлинности Windows.

  6. Если для свойства true в параметре CachePropertyChanges, то для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно). Если для свойства false в параметре CachePropertyChanges (по умолчанию), изменения будут отправлены на сервер немедленно.

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

  1. Создайте соединение с подписчиком с помощью класса ServerConnection .

  2. Создайте экземпляр класса TransPullSubscription.

  3. Установите для подписки свойства PublicationName, DatabaseName, PublisherNameи PublicationDBName , а в качестве значения для свойства ConnectionContext укажите соединение, созданное на шаге 1.

  4. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращает значение false, то либо на шаге 3 были неверно определены свойства подписки, либо подписка не существует.

  5. В экземпляре TransPullSubscriptionзадайте одно или несколько из следующих свойств безопасности.

    • Чтобы изменить учетные данные для учетной записи Windows, с которой запускается агент, установите поля Login и Password свойства SynchronizationAgentProcessSecurity.

    • Чтобы при соединении агента с распространителем использовать встроенную проверку подлинности Windows, установите в поле WindowsAuthentication свойства DistributorSecurity значение true.

    • Чтобы при соединении агента с распространителем использовать проверку подлинности SQL Server, установите в поле WindowsAuthentication свойства DistributorSecurity значение falseи укажите учетные данные входа распространителя в полях SqlStandardLogin и SqlStandardPassword .

      Примечание.

      Агент всегда соединяется с подписчиком с учетными данными Windows, указанными в SynchronizationAgentProcessSecurity. Эта учетная запись также используется для установления удаленных соединений с проверкой подлинности Windows.

  6. Если для свойства true в параметре CachePropertyChanges, то для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно). Если для свойства false в параметре CachePropertyChanges (по умолчанию), изменения будут отправлены на сервер немедленно.

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

  1. Создайте соединение с подписчиком с помощью класса ServerConnection .

  2. Создайте экземпляр класса MergePullSubscription.

  3. Установите для подписки свойства PublicationName, DatabaseName, PublisherNameи PublicationDBName , а в качестве значения для свойства ConnectionContext укажите соединение, созданное на шаге 1.

  4. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращает значение false, то либо на шаге 3 были неверно определены свойства подписки, либо подписка не существует.

  5. В экземпляре MergePullSubscriptionзадайте одно или несколько из следующих свойств безопасности.

    • Чтобы изменить учетные данные для учетной записи Windows, с которой запускается агент, установите поля Login и Password свойства SynchronizationAgentProcessSecurity.

    • Чтобы при соединении агента с распространителем использовать встроенную проверку подлинности Windows, установите в поле WindowsAuthentication свойства DistributorSecurity значение true.

    • Чтобы при соединении агента с распространителем использовать проверку подлинности SQL Server, установите в поле WindowsAuthentication свойства DistributorSecurity значение falseи укажите учетные данные входа распространителя в полях SqlStandardLogin и SqlStandardPassword .

    • Чтобы при соединении агента с издателем использовать встроенную проверку подлинности Windows, установите в поле WindowsAuthentication свойства PublisherSecurity значение true.

    • Чтобы при соединении агента с издателем использовать проверку подлинности SQL Server, установите в поле WindowsAuthentication свойства PublisherSecurity значение falseи укажите учетные данные входа издателя в полях SqlStandardLogin и SqlStandardPassword .

      Примечание.

      Агент всегда соединяется с подписчиком с учетными данными Windows, указанными в SynchronizationAgentProcessSecurity. Эта учетная запись также используется для установления удаленных соединений с проверкой подлинности Windows.

  6. Если для свойства true в параметре CachePropertyChanges, то для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно). Если для свойства false в параметре CachePropertyChanges (по умолчанию), изменения будут отправлены на сервер немедленно.

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

  1. Создайте соединение с издателем с помощью класса ServerConnection .

  2. Создайте экземпляр класса MergeSubscription.

  3. Установите для подписки свойства PublicationName, DatabaseName, SubscriberNameи SubscriptionDBName , а в качестве значения для свойства ConnectionContext укажите соединение, созданное на шаге 1.

  4. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращает значение false, то либо на шаге 3 были неверно определены свойства подписки, либо подписка не существует.

  5. В экземпляре MergeSubscriptionзадайте одно или несколько из следующих свойств безопасности.

    • Чтобы изменить учетные данные для учетной записи Windows, с которой запускается агент, установите поля Login и Password свойства SynchronizationAgentProcessSecurity.

    • Чтобы при соединении агента с подписчиком использовать встроенную проверку подлинности Windows, установите в поле WindowsAuthentication свойства SubscriberSecurity значение true.

    • Чтобы при соединении агента с подписчиком использовать проверку подлинности SQL Server, установите в поле WindowsAuthentication свойства SubscriberSecurity значение falseи укажите учетные данные входа подписчика в полях SqlStandardLogin и SqlStandardPassword .

    • Чтобы при соединении агента с издателем использовать встроенную проверку подлинности Windows, установите в поле WindowsAuthentication свойства PublisherSecurity значение true.

    • Чтобы при соединении агента с издателем использовать проверку подлинности SQL Server, установите в поле WindowsAuthentication свойства PublisherSecurity значение falseи укажите учетные данные входа издателя в полях SqlStandardLogin и SqlStandardPassword .

      Примечание.

      Агент всегда соединяется с распространителем с учетными данными Windows, указанными в свойстве SynchronizationAgentProcessSecurity. Эта учетная запись также используется для установления удаленных соединений с проверкой подлинности Windows.

  6. Если для свойства true в параметре CachePropertyChanges, то для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно). Если для свойства false в параметре CachePropertyChanges (по умолчанию), изменения будут отправлены на сервер немедленно.

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

  1. Создайте соединение с подписчиком с помощью класса ServerConnection .

  2. Создайте экземпляр класса ReplicationDatabase для базы данных подписки. Укажите значения Name и ServerConnection из шага 1 в параметре ConnectionContext.

  3. Чтобы получить свойства объекта, вызовите метод LoadProperties . Если этот метод возвращает значение false, значит, в шаге 2 были неправильно определены свойства базы данных либо база данных подписки не существует.

  4. Вызовите метод LinkPublicationForUpdateableSubscription , передав следующие параметры.

    • Publisher — имя издателя.

    • PublisherDB — имя базы данных публикации.

    • Publication — имя публикации, на которую подписан немедленно обновляемый подписчик.

    • Distributor — имя распространителя.

    • PublisherSecurity - A PublisherConnectionSecurityContext , указывающий тип режима безопасности, используемого немедленно обновляемым подписчиком при соединении с издателем, и учетные данные входа для этого соединения.

Пример (объекты RMO)

В этом примере проверяется указанное значение имени входа и изменяются все пароли для указанного имени входа в Windows или имени входа в SQL Server, хранимые репликацией на сервере.

// Set the Distributor and distribution database names.
string serverName = publisherInstance;

ReplicationServer server;

// Create a connection to the Distributor using Windows Authentication.
ServerConnection conn = new ServerConnection(serverName);

try
{
    // Open the connection. 
    conn.Connect();

    server = new ReplicationServer(conn);

    // Load server properties, if it exists.
    if (server.LoadProperties())
    {
        string[] slash = new string[1];
        slash[0] = @"\";

        // If the login is in the form string\string, assume we are 
        // changing the password for a Windows login.
        if (login.Split(slash, StringSplitOptions.None).Length == 2)
        {
            //Change the password for the all connections that use
            // the Windows login. 
            server.ChangeReplicationServerPasswords(
                    ReplicationSecurityMode.Integrated, login, password);
        }
        else
        {
            // Change the password for the all connections that use
            // the SQL Server login. 
            server.ChangeReplicationServerPasswords(
                    ReplicationSecurityMode.SqlStandard, login, password);
        }
    }
    else
    {
        throw new ApplicationException(String.Format(
            "Properties for {0} could not be retrieved.", publisherInstance));
    }
}
catch (Exception ex)
{
    // Implement the appropriate error handling here. 
    throw new ApplicationException(String.Format(
        "An error occurred when changing agent login " +
        " credentials on {0}.",serverName), ex);
}
finally
{
    conn.Disconnect();
}
' Set the Distributor and distribution database names.
Dim serverName As String = publisherInstance

Dim server As ReplicationServer

' Create a connection to the Distributor using Windows Authentication.
Dim conn As ServerConnection = New ServerConnection(serverName)

Try
    ' Open the connection. 
    conn.Connect()

    server = New ReplicationServer(conn)

    ' Load server properties, if it exists.
    If server.LoadProperties() Then

        ' If the login is in the form string\string, assume we are 
        ' changing the password for a Windows login.
        If login.Split("\").Length = 2 Then

            ' Change the password for the all connections that use
            ' the Windows login. 
            server.ChangeReplicationServerPasswords( _
            ReplicationSecurityMode.Integrated, login, password)
        Else

            ' Change the password for the all connections that use
            ' the SQL Server login. 
            server.ChangeReplicationServerPasswords( _
            ReplicationSecurityMode.SqlStandard, login, password)
        End If
    Else
        Throw New ApplicationException(String.Format( _
         "Properties for {0} could not be retrieved.", publisherInstance))
    End If
Catch ex As Exception
    ' Implement the appropriate error handling here. 
    Throw New ApplicationException(String.Format( _
     "An error occurred when changing agent login " + _
     " credentials on {0}.", serverName), ex)
Finally
    conn.Disconnect()
End Try

Дальнейшие действия. После изменения параметров безопасности репликации

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

См. также

Replication Management Objects Concepts
Обновление скриптов репликации (программирование репликации на языке Transact-SQL)
Идентификатор и управление доступом для репликации
Модель безопасности агента репликации
Replication Security Best Practices
Просмотр и изменение параметров безопасности репликации
Replication System Stored Procedures Concepts