Модель безопасности агента репликации
Модель безопасности агента репликации предоставляет возможность точного управления учетными записями, под которыми агенты репликации выполняются и устанавливают соединения: для каждого агента может быть задана своя учетная запись. Дополнительные сведения об определении учетных записей см. в статье Управление именами входа и паролями в репликации.
Внимание
Когда член предопределенной роли сервера 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. Дополнительные сведения о рекомендуемых подходах см. в разделе Replication Security Best Practices.
Разрешения, необходимые для агентов
Учетные записи, под которыми выполняются и устанавливают соединения агенты, требуют различных разрешений. Описание этих разрешений приводится в следующей таблице. Рекомендуется выполнять каждый агент под отдельной учетной записью Windows, которым следует предоставлять только необходимые разрешения. Сведения о списке доступа к публикации (PAL), относящемся к нескольким агентам, см. в разделе Защита издателя.
Примечание.
В некоторых операционных системах Windows с помощью средства «Контроль учетных записей» можно запретить административный доступ к хранилищу моментального снимка. Поэтому необходимо явно предоставить разрешения на доступ к хранилищу моментального снимка учетным записям Windows, которые используются агентом моментальных снимков, агентом распространителя и агентом слияния. Это необходимо делать даже в том случае, если эти учетные записи Windows являются членами группы «Администраторы». Дополнительные сведения см. в статье Организация безопасности папки моментальных снимков.
Агент | Разрешения |
---|---|
агент моментальных снимков | При соединении с распространителем используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна удовлетворять следующим требованиям: Она должна быть как минимум участником предопределенной роли базы данных db_owner в базе данных распространителя. Она должна обладать разрешениями на чтение, запись и изменение в хранилище моментальных снимков. Учетная запись, используемая для соединения с издателем, должна быть как минимум членом предопределенной роли базы данных db_owner публикации. |
Агент чтения журнала. | При соединении с распространителем используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна быть как минимум членом предопределенной роли базы данных db_owner распространителя. Учетная запись, используемая для соединения с издателем, должна быть как минимум членом предопределенной роли базы данных db_owner публикации. При выборе sync_type параметров репликации поддерживается только инициализация с помощью резервного копирования или инициализации из lsn, агент чтения журналов должен выполняться после выполнения sp_addsubscription , чтобы скрипты настройки записывался в базу данных распространителя. Агент чтения журнала должен работать под учетной записью, которая является членом предопределенной роли сервера sysadmin . sync_type Если для параметра задано значение "Автоматически", действия агента чтения журналов не требуются. |
Агент распространителя для принудительной подписки | При соединении с распространителем используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна удовлетворять следующим требованиям: Она должна быть как минимум участником предопределенной роли базы данных db_owner в базе данных распространителя. Она должна входить в список доступа к публикации. Она должна иметь разрешение на чтение хранилища моментальных снимков. Иметь разрешения на чтение из каталога, в который был установлен поставщик OLE DB для подписчика, если подписка предназначена для подписчика, отличного от подписчика SQL Server. При репликации бизнес-данных агент распространения должен иметь разрешения на репликацию C:\Program Files\Microsoft SQL Server\XX\COMfolder , где XX — идентификатор экземпляра. Учетная запись, используемая для соединения с подписчиком, должна быть как минимум членом предопределенной роли базы данных db_owner подписки или иметь равнозначные права, если подписка предназначена для подписчика, отличного от подписчика SQL Server. Примечание. При использовании -subscriptionstreams >= 2 агента распространителя необходимо также предоставить View Server State подписчикам разрешение на обнаружение взаимоблокировок. |
Агент распространителя для подписки по запросу | При соединении с подписчиком используется учетная запись Windows, под которой выполняется агент. Эта учетная запись должна быть как минимум членом предопределенной роли базы данных db_owner подписки. Учетная запись, используемая для соединения с распространителем, должна удовлетворять следующим требованиям: Она должна входить в список доступа к публикации. Она должна иметь разрешение на чтение хранилища моментальных снимков. При репликации бизнес-данных агент распространения должен иметь разрешения на репликацию C:\Program Files\Microsoft SQL Server\XX\COMfolder , где XX — идентификатор экземпляра. Примечание. При использовании -subscriptionstreams >= 2 агента распространителя необходимо также предоставить View Server State подписчикам разрешение на обнаружение взаимоблокировок. |
Агент слияния для принудительной подписки | При подключениях к издателю и распространителю используется та учетная запись 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. В следующей таблице перечислены имена заданий.
Агент | Имя задания |
---|---|
агент моментальных снимков | <Publisher-PublicationDatabase-Publication-Integer><><><> |
Агент моментальных снимков для секции публикации слиянием | <Dyn_Publisher-PublicationDatabase-Publication-GUID<><>><> |
Агент чтения журнала. | <Publisher-PublicationDatabase-integer><><> |
Агент слияния для подписок по запросу | <Publisher-PublicationDatabase-Publication-Subscription-SubscriptionDatabase-integer><><><><><> |
Агент слияния для принудительных подписок | <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><> |
Агент распространителя для принудительных подписок | <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><<>> 1 |
Агент распространителя для подписок по запросу | <Publisher-PublicationDatabase-Publication-Subscription-SubscriptionDatabase-GUID><><><><<>> 2 |
Агент распространителя для принудительных подписок подписчиков серверов, отличных от подписчиков SQL Server | <Publisher-PublicationDatabase-Publication-Subscriber-integer><><><><> |
Агент чтения очереди. | [<распространитель>].<целое число> |
1 Для отправки подписок на публикации Oracle имя задания — <Publisher-Publisher>< вместо <Publisher-PublicationDatabase>><>.
2. Для подписок на публикации Oracle имя задания — <Publisher-DistributionDatabase>> вместо< Publisher-PublicationDatabase.><<>
При настройке репликации задаются учетные записи, под которыми должны выполняться агенты. Однако все шаги заданий выполняются в контексте безопасности учетной записи-посредника, поэтому репликация осуществляет для указанных учетных записей агентов следующие внутренние сопоставления:
Учетная запись сначала сопоставляется с учетными данными с помощью инструкции Transact-SQL CREATE CREDENTIAL . агент SQL Server прокси-серверы используют учетные данные для хранения сведений об учетных записях пользователей Windows.
Вызывается хранимая процедура sp_add_proxy , а учетные данные используются для создания учетной записи-посредника.
Примечание.
Эти сведения предоставляются для понимания, что происходит при запуске агентов в соответствующих контекстах безопасности. Необязательно взаимодействовать непосредственно с учетными данными или созданными учетными записями-посредниками.
См. также
Replication Security Best Practices
безопасность Репликация SQL Server
Защита папки моментальных снимков