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

Применимо к: даSQL Server (все поддерживаемые версии)

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

Модель безопасности агента репликации для Управляемого экземпляра SQL Azure немного отличается, так как отсутствуют учетные записи Windows для запуска агентов. Вместо этого все выполняется через проверку подлинности SQL Server.

Важно!

Если репликацию настраивает член предопределенной роли сервера 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_typereplication support only, initialize with backup или initialize from lsn агент чтения журнала необходимо запустить после выполнения процедуры sp_addsubscription, чтобы скрипты установки были записаны в базу данных распространителя. Агент чтения журнала должен работать под учетной записью, которая является членом предопределенной роли сервера sysadmin . Если параметр sync_type установлен в значение Automatic, никаких специальных действий агента чтения журнала не требуется.
Агент распространителя для принудительной подписки При соединении с распространителем используется учетная запись 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>-<Subscriber>-<SubscriptionDatabase>-<integer>
Агент слияния для принудительных подписок <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>
Агент распространителя для принудительных подписок <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>
Агент распространителя для подписок по запросу <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<SubscriptionDatabase>-<GUID>
Агент распространителя для принудительных подписок подписчиков серверов, отличных от подписчиков SQL Server <Publisher>-<PublicationDatabase>-<Publication>-<Subscriber>-<integer>
Агент чтения очереди. [<Distributor>].<integer>

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

**Для подписок по запросу на публикации Oracle именем задания является <Publisher>-<DistributionDatabase>, а не <Publisher>-<PublicationDatabase> .

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

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

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

Примечание

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

См. также:

Replication Security Best Practices
Просмотр и изменение параметров безопасности репликации
Защита папки моментальных снимков