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

Область применения: 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 на сервере в топологии репликации, используйте это диалоговое окно вместо обновления пароля для каждого агента, использующего учетную запись. Если агенты на нескольких серверах используют одну и ту же учетную запись, то нужно подключиться к каждому из этих серверов и изменить пароль. Обновление пароля осуществляется везде, где его использует репликация. В других местах, например на связанных серверах, обновление пароля не происходит.

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

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

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

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

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

  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. Нажмите ОК.

Примечание.

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

Данная процедура применяется только к подпискам по запросу. Для 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, отправляются Распространителю в виде открытого текста. Прежде чем выполнять эту хранимую процедуру, необходимо зашифровать соединение между издателем и его удаленным распространителем. Дополнительные сведения см. в статье Включение шифрования соединений в компоненте ядро СУБД (диспетчер конфигурации 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 или при изменении сведений для входа при использовании проверки подлинности 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 или при изменении учетных данных для проверки подлинности 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 для @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, указав для параметра @password пароль из шага 1.

Использование объектов управления репликацией (RMO)

Внимание

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

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

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

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

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

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

    • login — логин, для которого пароль меняется во всех случаях его использования.

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

      Внимание

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

      Примечание.

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

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

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

  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[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

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

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