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

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

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

  • Перед началом работы выполните следующие действия.

    Ограничения

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

  • Для просмотра и изменения параметров безопасности репликации используется:

    Среда SQL Server Management Studio

    Transact-SQL

    объекты RMO;

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

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

Ограничения

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

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

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

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

Разрешения

Значок стрелки, используемый со ссылкой «В начало»[Top]

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

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

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

  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. В диалоговом окне Свойства подписки — <подписка> на подписчике щелкните строку Соединение с издателем, а затем нажмите кнопку свойств () в этой строке.

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

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

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

  3. Нажмите кнопку ОК.

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

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

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

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

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

  2. Нажмите кнопку ОК.

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

  4. Нажмите кнопку ОК.

Значок стрелки, используемый со ссылкой «В начало»[Top]

Использование 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.

Значок стрелки, используемый со ссылкой «В начало»[Top]

При помощи объектов 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. Если для свойства CachePropertyChanges указать значение true, то для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно). Если для свойства CachePropertyChanges указать значение false (по умолчанию), изменения будут отправлены на сервер немедленно.

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

  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. Если для свойства CachePropertyChanges указать значение true, то для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно). Если для свойства CachePropertyChanges указать значение false (по умолчанию), изменения будут отправлены на сервер немедленно.

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

  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. Если для свойства CachePropertyChanges указать значение true, то для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно). Если для свойства CachePropertyChanges указать значение false (по умолчанию), изменения будут отправлены на сервер немедленно.

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

  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. Если для свойства CachePropertyChanges указать значение true, то для фиксирования изменений на сервере необходимо вызвать метод CommitPropertyChanges (необязательно). Если для свойства CachePropertyChanges указать значение false (по умолчанию), изменения будут отправлены на сервер немедленно.

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

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

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

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

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

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

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

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

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

    • PublisherSecurity — объект 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[1] = @"\";

                    // 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 occured 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 occured when changing agent login " + _
     " credentials on {0}.", serverName), ex)
Finally
    conn.Disconnect()
End Try

Значок стрелки, используемый со ссылкой «В начало»[Top]

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

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

Значок стрелки, используемый со ссылкой «В начало»[Top]

См. также

Задания

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

Основные понятия

Основные понятия объектов RMO

Модель безопасности агента репликации

Рекомендации по защите репликации

Основные понятия системных хранимых процедур репликации

Другие ресурсы

Управление именами входа и паролями в репликации

Безопасность и защита (репликация)