Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Область применения:SQL Server
Модель безопасности агента репликации позволяет детально управлять учетными записями, от имени которых работают агенты репликации и выполняются подключения: для каждого агента можно указать отдельную учетную запись. Дополнительные сведения об указании учетных записей см. в статье Идентификатор и управление доступом для репликации.
Модель безопасности агента репликации для Управляемого экземпляра SQL Azure немного отличается, так как отсутствуют учетные записи Windows для запуска агентов. Вместо этого все выполняется через проверку подлинности SQL Server.
Внимание
Когда пользователь, входящий в фиксированную роль сервера sysadmin, настраивает репликацию, агенты репликации можно настроить на олицетворение учетной записи агента SQL Server. Это можно сделать, если не задавать имя входа и пароль для агента репликации, однако такой подход не рекомендуется. Вместо этого для обеспечения надежной защиты рекомендуется задать учетную запись для каждого агента с минимальными разрешениями, описанными в подразделе «Разрешения, необходимые для агентов» ниже в этом разделе.
Агенты репликации, как и все исполняемые объекты, запускаются в контексте учетной записи Windows. Агенты выполняют соединения встроенной безопасности Windows, используя эту учетную запись. Учетная запись, под которой запускается агент, зависит от того, как он запущен:
Запуск агента из задания агента SQL Server (по умолчанию): когда для запуска агента репликации используется задание агента SQL Server, агент запускается от имени учетной записи, которую вы указываете при настройке репликации. Дополнительные сведения об агенте SQL Server и репликации см. в разделе «Agent Security» раздела «агент SQL Server» далее в этом разделе. Сведения о разрешениях, необходимых для учетной записи, от имени которой работает агент SQL Server, см. в разделе Настройка агента SQL Server.
Запуск агента из командной строки MS-DOS или непосредственно, или с помощью скрипта: агент выполняется в контексте учетной записи пользователя, запустившего его из командной строки.
Запуск агента из приложения, использующего объекты RMO или элемент управления ActiveX: агент выполняется в контексте приложения, которое вызывает объект RMO или элемент управления ActiveX.
Примечание.
Элементы управления ActiveX являются устаревшими.
Рекомендуется выполнять соединение в контексте встроенной безопасности Windows. Для обратной совместимости также можно использовать безопасность SQL Server. Дополнительные сведения о рекомендуемых подходах см. в разделе Replication Security Best Practices.
Разрешения, необходимые для агентов
Учетные записи, от имени которых запускаются агенты и устанавливаются подключения, требуют различных разрешений. Описание этих разрешений приводится в следующей таблице. Мы рекомендуем, чтобы каждый агент запускался под отдельной учетной записью Windows и этой учетной записи были предоставлены только необходимые разрешения. Сведения о списке доступа к публикации (PAL), относящемся к нескольким агентам, см. в разделе Защита издателя.
Примечание.
В некоторых операционных системах Windows с помощью средства «Контроль учетных записей» можно запретить административный доступ к хранилищу моментального снимка. Поэтому необходимо явно предоставить разрешения на доступ к общей папке моментальных снимков учетным записям Windows, используемым агентом моментальных снимков, агентом распространения и агентом слияния. Это необходимо делать даже в том случае, если эти учетные записи Windows являются членами группы «Администраторы». Дополнительные сведения см. в статье Организация безопасности папки моментальных снимков.
| Агент | Разрешения |
|---|---|
| агент моментальных снимков | Для подключения к дистрибьютору используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна удовлетворять следующим требованиям: Она должна быть как минимум участником предопределенной роли базы данных db_owner в базе данных распространителя. Она должна обладать разрешениями на чтение, запись и изменение в хранилище моментальных снимков. Обратите внимание, что учетная запись, используемая для подключения к издателю, должна быть как минимум участником предопределенной роли базы данных db_owner в базе данных публикации. |
| Агент чтения журналов | Для подключения к дистрибьютору используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна как минимум входить в состав фиксированной роли базы данных db_owner в базе данных распространителя. Учетная запись, используемая для подключения к издателю, должна как минимум входить в фиксированную роль базы данных db_owner в базе данных публикации. При выборе параметров sync_typereplication support only, initialize with backupили initialize from lsnагент чтения журнала необходимо запустить после выполнения процедуры sp_addsubscription, чтобы скрипты установки были записаны в базу данных распространителя. Агент чтения журнала должен работать под учетной записью, входящей в фиксированную серверную роль sysadmin. Если параметр sync_type установлен в значение Automatic, никаких специальных действий агента чтения журнала не требуется. |
| Агент распространения для подписки по уведомлению | Учетная запись Windows, от имени которой работает агент, используется, когда он устанавливает соединение с дистрибьютором. Эта учетная запись должна удовлетворять следующим требованиям: -Необходимо быть как минимум членом фиксированной роли базы данных db_owner в базе данных распространения. -Быть участником PAL. Она должна иметь разрешение на чтение хранилища моментальных снимков. Иметь разрешения на чтение из каталога, в который был установлен поставщик OLE DB для подписчика, если подписка предназначена для подписчика, отличного от подписчика SQL Server. -При репликации LOB данных агент распространителя должен иметь разрешения на запись в папке репликации C:\Program Files\Microsoft SQL Server\XX\COM, где XX представляет ID экземпляра. Обратите внимание, что учетная запись, используемая для подключения к подписчику, должна как минимум входить в фиксированную роль базы данных db_owner в базе данных подписки и иметь разрешение Просмотр состояния производительности сервера, либо иметь эквивалентные разрешения, если подписка оформлена для подписчика, не являющегося SQL Server. Кроме того, при использовании -subscriptionstreams >= 2 в агенте распространителя также необходимо предоставить разрешение View Server State для подписчиков, чтобы обеспечить обнаружение взаимоблокировок. |
| Агент распространителя для подписки по запросу | При соединении с подписчиком используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна: -Ка минимум, быть членом фиксированной роли базы данных db_owner в подписной базе данных. Учетная запись, используемая для соединения с распространителем, должна удовлетворять следующим требованиям: -Необходимо быть как минимум членом фиксированной роли базы данных db_owner в базе данных распространения. -Быть участником PAL. Она должна иметь разрешение на чтение хранилища моментальных снимков. -При репликации LOB данных агент распространителя должен иметь разрешения на запись в папке репликации C:\Program Files\Microsoft SQL Server\XX\COM, где XX представляет ID экземпляра. Обратите внимание, что при использовании -subscriptionstreams >= 2 в агенте распространения необходимо также предоставить подписчикам разрешение View Server State для обнаружения взаимоблокировок. |
| Агент слияния для принудительной подписки | При подключении к Издателю и Распространителю используется учетная запись Windows, от имени которой запущен агент. Эта учетная запись должна удовлетворять следующим требованиям: -Необходимо быть как минимум членом фиксированной роли базы данных db_owner в базе данных распространения. -Быть участником PAL. -Используйте учетную запись для входа, связанную с пользователем в базе данных публикации и имеющую права на чтение и запись. Она должна иметь разрешение на чтение хранилища моментальных снимков. Обратите внимание, что учетная запись, используемая для подключения к подписчику, должна быть как минимум участником предопределенной роли базы данных db_owner в базе данных подписки. |
| Агент слияния для подписки по запросу | При соединении с подписчиком используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна как минимум входить в фиксированную роль базы данных db_owner в базе данных подписки. Учетная запись, используемая для соединения с издателем и распространителем, должна удовлетворять следующим требованиям: -Быть участником PAL. — Используйте учётную запись для входа, связанную с пользователем в базе данных публикаций, имеющим разрешения на чтение и запись. - Быть учетной записью для входа, связанной с пользователем в базе данных распространения. Пользователь может иметь учетную запись Guest . Она должна иметь разрешение на чтение хранилища моментальных снимков. |
| Агент чтения очереди | Для подключения к дистрибьютору используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна как минимум входить в состав фиксированной роли базы данных db_owner в базе данных распространителя. Учетная запись, используемая для подключения к издателю, должна как минимум входить в фиксированную роль базы данных db_owner в базе данных публикации. Учетная запись, используемая для подключения к подписчику, должна как минимум входить в предопределенную роль базы данных db_owner в базе данных подписки. |
Безопасность агентов под управлением агента SQL Server
При настройке репликации с помощью SQL Server Management Studio, процедур Transact-SQL или RMO по умолчанию создается задание агента SQL Server для каждого агента. Агенты затем запускаются в контексте шага задания, независимо от того, работают ли они непрерывно, по расписанию или по запросу. Эти задания можно просмотреть в папке "Задания " в SQL Server Management Studio. В следующей таблице перечислены имена заданий.
| Агент | Имя задания |
|---|---|
| агент моментальных снимков | <Издатель>-<База данных публикаций>-<Публикация>-<целое число> |
| Агент моментальных снимков для секции публикации слиянием | Dyn_<Publisher>-<PublicationDatabase>-<Publication>-<GUID> |
| Агент чтения журналов | <Издатель>-<База данных публикаций>-<целое число> |
| Агент слияния для подписок по запросу | <Издатель>-<База данных публикаций>-<Публикация>-<Подписчик>-<База данных подписок>-<целое число> |
| Агент слияния для подписок с немедленным обновлением | <Издатель>-<База данных публикаций>-<Публикация>-<Подписчик>-<целое число> |
| Агент распространителя для принудительных подписок | <Издатель>-<База данных публикаций>-<Публикация>-<Подписчик>-<целое число> |
| Агент распространителя для подписок по запросу | < >Publisher-PublicationDatabase-Publication-SubscriptionDatabase-GUID<><><><><> |
| Агент распространения для подписок типа push подписчиков, не являющихся SQL Server | <Издатель>-<База данных публикаций>-<Публикация>-<Подписчик>-<целое число> |
| Агент чтения очереди | [<распространитель>].<целое число> |
*Для принудительных подписок на публикации Oracle имя задания — <Publisher>-<Publisher>, а не <Publisher>-<PublicationDatabase>.
Для подписок по запросу на публикации Oracle имя задания — <Publisher>-<DistributionDatabase>, а не <Publisher>-<PublicationDatabase>.
При настройке репликации вы указываете учетные записи, под которыми должны выполняться агенты. Однако все шаги заданий выполняются в контексте безопасности учетной записи-посредника, поэтому репликация осуществляет для указанных учетных записей агентов следующие внутренние сопоставления:
Учетная запись сначала сопоставляется с учетными данными с помощью инструкции Transact-SQL CREATE CREDENTIAL . Прокси-серверы агент SQL Server используют учетные данные для хранения сведений об учетных записях пользователей Windows.
Вызывается хранимая процедура sp_add_proxy , а учетные данные используются для создания учетной записи-посредника.
Примечание.
Эти сведения предоставляются, чтобы помочь вам понять, что требуется для запуска агентов в соответствующем контексте безопасности. У вас не должно быть необходимости напрямую взаимодействовать с созданными учетными данными или прокси.