Поделиться через


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

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

Внимание

Когда член предопределенной роли сервера 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
Защита папки моментальных снимков