Модель безопасности агента репликации
Модель безопасности агента репликации предоставляет возможность точного управления учетными записями, под которыми агенты репликации выполняются и устанавливают соединения: для каждого агента может быть задана своя учетная запись. Дополнительные сведения о задании учетных записей см. в разделе Управление именами входа и паролями в репликации.
Важно! |
---|
Если репликацию настраивает член предопределенной роли сервера 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. Дополнительные сведения о рекомендуемых подходах см. в разделе Рекомендации по защите репликации.
Разрешения, необходимые для агентов
Учетные записи, под которыми выполняются и устанавливают соединения агенты, требуют различных разрешений. Описание этих разрешений приводится в следующей таблице. Рекомендуется выполнять каждый агент под отдельной учетной записью Windows, которым следует предоставлять только необходимые разрешения. Сведения о списке доступа к публикации (PAL), относящимся к нескольким агентам, см. в разделе Организация безопасности издателя.
Примечание |
---|
С помощью средства «Управление учетными записями» в Windows Vista можно запретить административный доступ к хранилищу моментального снимка. Поэтому необходимо явно предоставить разрешения на доступ к хранилищу моментального снимка учетным записям Windows, которые используются агентом моментальных снимков, агентом распространителя и агентом слияния. Это необходимо делать даже в том случае, если эти учетные записи Windows являются членами группы «Администраторы». Дополнительные сведения см. в разделе Организация безопасности папки моментальных снимков. |
Агент |
Разрешения |
||
---|---|---|---|
Агент моментальных снимков |
При соединении с распространителем используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна удовлетворять следующим требованиям:
Учетная запись, используемая для соединения с издателем, должна быть как минимум членом предопределенной роли базы данных db_owner публикации. |
||
Агент чтения журнала |
При соединении с распространителем используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна быть как минимум членом предопределенной роли базы данных db_owner распространителя. Учетная запись, используемая для соединения с издателем, должна быть как минимум членом предопределенной роли базы данных db_owner публикации. При выборе параметров sync_type replication support only, initialize with backup или initialize from lsn агент чтения журнала необходимо запустить после выполнения процедуры sp_addsubscription, чтобы скрипты установки были записаны в базу данных распространителя. Агент чтения журнала должен работать под учетной записью, которая является членом предопределенной роли сервера sysadmin. Если параметр sync_type установлен в значение Automatic, никаких специальных действий агента чтения журнала не требуется. |
||
Агент распространителя для принудительной подписки |
При соединении с распространителем используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна удовлетворять следующим требованиям:
Учетная запись, используемая для соединения с подписчиком, должна быть как минимум членом предопределенной роли базы данных db_owner подписки или иметь равнозначные права, если подписка предназначена для подписчика, отличного от подписчика SQL Server.
|
||
Агент распространителя для подписки по запросу |
При соединении с подписчиком используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна быть как минимум членом предопределенной роли базы данных db_owner подписки. Учетная запись, используемая для соединения с распространителем, должна удовлетворять следующим требованиям:
|
||
Агент слияния для принудительной подписки |
При подключениях к издателю и распространителю используется та учетная запись Windows, под которой выполняется агент. Эта учетная запись должна удовлетворять следующим требованиям:
Учетная запись, используемая для соединения с подписчиком, должна быть как минимум членом предопределенной роли базы данных db_owner подписки. |
||
Агент слияния для подписки по запросу |
При соединении с подписчиком используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна быть как минимум членом предопределенной роли базы данных db_owner подписки. Учетная запись, используемая для соединения с издателем и распространителем, должна удовлетворять следующим требованиям:
|
||
Агент чтения очереди |
При соединении с распространителем используется учетная запись 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> |
Агент чтения очереди |
[<распространитель>].<integer> |
1 Для принудительных подписок на публикации Oracle именем задания является <издатель>-<издатель>, а не <издатель>-<база данных публикации>.
2 Для подписок по запросу на публикации Oracle именем задания является <издатель>-<база данных распространителя>, а не <издатель>-<база данных публикации>.
При настройке репликации задаются учетные записи, под которыми должны выполняться агенты. Однако все шаги заданий выполняются в контексте безопасности учетной записи-посредника, поэтому репликация осуществляет для указанных учетных записей агентов следующие внутренние сопоставления:
Сначала учетная запись сопоставляется с учетными данными с помощью инструкции Transact-SQL CREATE CREDENTIAL. Учетные записи-посредники агента SQL Server используют учетные данные для хранения сведений об учетных записях пользователей Windows.
Вызывается хранимая процедура sp_add_proxy, а учетные данные используются для создания учетной записи-посредника.
Примечание |
---|
Эти сведения предоставляются для понимания, что происходит при запуске агентов в соответствующих контекстах безопасности. Необязательно взаимодействовать непосредственно с учетными данными или созданными учетными записями-посредниками. |
См. также
Основные понятия
Рекомендации по защите репликации
Организация безопасности папки моментальных снимков