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

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

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

Если репликацию настраивает член предопределенной роли сервера sysadmin, агенты репликации можно настроить для олицетворения учетной записи агента SQL Server. Это можно сделать, если не задавать имя входа и пароль для агента репликации, однако такой подход не рекомендуется. Вместо этого для обеспечения надежной защиты рекомендуется задать учетную запись для каждого агента с минимальными разрешениями, описанными в подразделе «Разрешения, необходимые для агентов» ниже в этом разделе.

Агенты репликации, как и все исполняемые объекты, запускаются в контексте учетной записи Windows. Агенты выполняют соединения встроенной безопасности Windows, используя эту учетную запись. Учетная запись, под которой выполняется агент, зависит от того, как он был запущен:

  • Запуск агента из задания агента SQL Server (по умолчанию): Когда для запуска агента репликации используется задание агента SQL Server, агент репликации выполняется в контексте учетной записи, указанной при настройке репликации. Дополнительные сведения об агенте SQL Server и репликации см. в подразделе «Безопасность агентов под управлением агента SQL Server» ниже в этом разделе. Сведения о разрешениях, необходимых для учетной записи, под которой выполняется агент SQL Server, см. в разделе Настройка агента SQL Server.

  • Запуск агента из командной строки MS-DOS или непосредственно, или с помощью сценария: Агент выполняется в контексте учетной записи пользователя, запустившего его из командной строки.

  • Запуск агента из приложения, использующего объекты RMO или элемент управления ActiveX: Агент выполняется в контексте приложения, которое вызывает объект RMO или элемент управления ActiveX.

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

    Элементы управления ActiveX являются устаревшими.

Рекомендуется выполнять соединение в контексте встроенной безопасности Windows. В целях обратной совместимости также можно использовать безопасность SQL Server. Дополнительные сведения о рекомендуемых подходах см. в разделе Рекомендации по защите репликации.

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

С целью повышения уровня безопасности сценарии репликации, созданные в SQL Server 2000, необходимо обновить до SQL Server 2008, чтобы воспользоваться преимуществами расширений безопасности. Дополнительные сведения см. в разделе Как обновить сценарии репликации (программирование репликации на языке Transact-SQL).

Разрешения, необходимые для агентов

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

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

С помощью средства «Управление учетными записями» в Windows Vista можно запретить административный доступ к хранилищу моментального снимка. Поэтому необходимо явно предоставить разрешения на доступ к хранилищу моментального снимка учетным записям Windows, которые используются агентом моментальных снимков, агентом распространителя и агентом слияния. Это необходимо делать даже в том случае, если эти учетные записи Windows являются членами группы «Администраторы». Дополнительные сведения см. в разделе Защита папки моментальных снимков.

Агент

Разрешения

Агент моментальных снимков

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

  • Она должна быть как минимум членом предопределенной роли базы данных db_owner в базе данных распространителя.

  • Иметь разрешения на чтение, запись и изменения в хранилище моментального снимка.

Учетная запись, используемая для соединения с издателем, должна быть как минимум членом предопределенной роли базы данных db_owner публикации.

Агент чтения журнала

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

Учетная запись, используемая для соединения с издателем, должна быть как минимум членом предопределенной роли базы данных db_owner публикации.

Агент распространителя для принудительной подписки

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

  • Она должна быть как минимум членом предопределенной роли базы данных db_owner в базе данных распространителя.

  • Она должна входить в список доступа к публикации.

  • Она должна иметь разрешение на чтение хранилища моментальных снимков.

  • Иметь разрешения на чтение из каталога, в который был установлен поставщик OLE DB для подписчика, если подписка предназначена для подписчика, отличного от подписчика SQL Server.

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

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

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

Учетная запись, используемая для соединения с распространителем, должна удовлетворять следующим требованиям:

  • Она должна входить в список доступа к публикации.

  • Она должна иметь разрешение на чтение хранилища моментальных снимков.

Агент слияния для принудительной подписки

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

  • Она должна быть как минимум членом предопределенной роли базы данных db_owner в базе данных распространителя.

  • Она должна входить в список доступа к публикации.

  • Он должна иметь имя входа, связанное с пользователем в базе данных публикации.

  • Она должна иметь разрешение на чтение хранилища моментальных снимков.

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

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

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

Учетная запись, используемая для соединения с издателем и распространителем, должна удовлетворять следующим требованиям:

  • Она должна входить в список доступа к публикации.

  • Она должна иметь имя входа, связанное с пользователем в базе данных публикации.

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

  • Она должна иметь разрешение на чтение хранилища моментальных снимков.

Агент чтения очереди

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

Учетная запись, используемая для соединения с издателем, должна быть как минимум членом предопределенной роли базы данных db_owner публикации.

Учетная запись, используемая для соединения с подписчиком, должна быть как минимум членом предопределенной роли базы данных db_owner публикации.

Безопасность агентов под управлением агента SQL Server

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

Агент

Имя задания

Агент моментальных снимков

<Издатель>-<база данных публикации>-<публикация>-<integer>

Агент моментальных снимков для секции публикации слиянием

Dyn_<издатель>-<база данных публикации>-<публикация>-<GUID>

Агент чтения журнала

<Издатель>-<база данных публикации>-<integer>

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

<Издатель>-<база данных публикации>-<публикация>-<подписчик>-<база данных подписок>-<integer>

Агент слияния для принудительных подписок

<Издатель>-<база данных публикации>-<публикация>-<подписчик>-<integer>

Агент распространителя для принудительных подписок

<Издатель>-<база данных публикации>-<публикация>-<подписчик>-<integer>1

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

<Издатель>-<база данных публикации>-<публикация>-<подписчик>-<база данных подписок>-<GUID>2

Агент распространителя для принудительных подписок подписчиков серверов, отличных от подписчиков SQL Server

<Издатель>-<база данных публикации>-<публикация>-<подписчик>-<integer>

Агент чтения очереди

[<Distributor>].<integer>

1 Для принудительных подписок на публикации Oracle именем задания является <издатель>-<издатель>, а не <издатель>-<база данных публикации>.

2 Для подписок по запросу на публикации Oracle именем задания является <издатель>-<база данных распространителя>, а не <издатель>-<база данных публикации>.

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

  • Сначала учетная запись сопоставляется с учетными данными с помощью инструкции Transact-SQL CREATE CREDENTIAL. Учетные записи-посредники агента SQL Server используют учетные данные для хранения сведений об учетных записях пользователей Windows.

  • Вызывается хранимая процедура sp_add_proxy, и учетные данные используются для создания учетной записи-посредника. Дополнительные сведения об учетных записях-посредниках см. в разделе Создание учетных записей-посредников агента SQL Server.

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

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