|
По материалам статьи Marcin Policht: SQL
Server 2000 Security - Part 9 - Replication
Security Безопасность репликации - очень важная задача, которую нужно очень тщательно планировать. Давайте начнём с замечания о том, что процедуры создания/администрирования издателей, дистрибуторов и подписчиков (включая публикацию базы данных для репликации) доступны только для серверной роли sysadmin. После определения участников репликации, только члены роли sysadmin и члены роли db_owner публикуемой базы данных могут создавать и настраивать публикации. Мониторинг репликации доступен для членов серверной роли sysadmin и роли replmonitor базы данных distributor, которая создаётся автоматически, вместе с дистрибутором. Дистрибутор создаётся в SQL Server Enterprise Manager с помощью опции "Configure Publishing, Subscribers and Distribution...", в пункте меню Tools -> Replication. Вы можете разместить издателя и дистрибутора на одном и том же компьютере, или использовать для дистрибутора отдаленный сервер. В последнем случае, издателя нужно сначала создать на сервере размещения дистрибутора. Сделать это можно на закладке Publishers диалогового окна Publisher and Distributor Properties, которое можно вызвать, выбрав опцию "Configure Publishing, Subscribers and Distribution...". Там Вы можете назначить издателей (из списка серверов, зарегистрированных в SQL Server Enterprise Manager), которых будет обслуживать дистрибутор. На закладке Distributor того же диалогового окна, Вы можете задать пароль подключения администратора, который будет использоваться издателями при подключении к дистрибутору, для его администрирования. На этих же закладках Вы можете увидеть опцию для создания нескольких базы данных distribution, выделенных для разных групп издателей (что повышает безопасность работы нескольких издателей с одним дистрибутором). При создании издателя, требуется определить логины пользователей, которые будут использовать агенты репликации для подключения к издателю. Аналогично, при создании подписчика, на закладке Subscribers диалогового окна Publisher and Distributor Properties, Вы должны установить контекст безопасности подключений агента к издателю/дистрибутору. Так как агенты репликации управляются заданиями SQL Server Agent, по умолчанию они работают в контексте безопасности учетной записи SQL Server Agent. Вы можете принять значение по умолчанию или изменить контекст подключения к SQL Server на другой, обладающий необходимым для этого набором разрешений. При создании публикаций можно разрешить существование анонимных подписчиков. Несмотря на то, что это упрощает управление публикацией, особенно когда подписчиков очень много, это негативно влияет на безопасность тиражируемых данных, и допустимо только после очень тщательного рассмотрения возможных последствий утечки информации. Теперь давайте сделаем обзор требований безопасности для разных типов репликации. Начнём мы с общих для всех типов механизмов. Одним из таких механизмов является моментальный снимок, который используется в каждом типе репликации хотя бы один раз. Снимки обслуживаются программой Snapshot Agent, запускающейся на дистрибуторе, и имеют следующие требования безопасности:
Требования для работы Snapshot Agent одинаковы для всех типов репликации. Однако, при использовании репликации транзакций или репликации слиянием, Вы должны учитывать дополнительные аспекты, которые касаются работы дистрибутора и Log Reader агента для репликации транзакций или Merge - агента в случае репликации слиянием. Log Reader Agent работает с дистрибутором. Его задача читать отмеченные для репликации транзакции в журнале издаваемой базы данных и копировать их в виде команд в базу данных distribution. Всё это происходит в контексте безопасности SQL Server Agent дистрибутора. Тиражированием изменений подписчикам занимается Distribution Agent, который, кроме необходимых ему для этого прав в базе distribution, также нуждается в правах на INSERT, UPDATE и DELETE в базах данных подписчиков, и должен иметь разрешение на чтение в папке моментальных снимков на дистрибуторе. Merge Agent в репликации слиянием занимается синхронизацией данных между издателем и подписчиками. Он контролирует изменения с обеих сторон, разрешая возможные конфликты и отмечая все изменения данных в таблицах метаданных издателя. Для этого ему требуются прав на SELECT, DELETE, INSERT и UPDATE в базе данных издателя. Изменения, переданные агентом издателю, впоследствии будут применены другими подписчиками. Механизм изменений данных на подписчиках зависит от того, какой используется тип подписки, push или pull. В первом случае, Merge Agent запускается на дистрибуторе, подключается к подписчику и тиражирует изменения, для чего ему нужны права на INSERT, DELETE и UPDATE. Во втором случае, Merge Agent запускается на подписчиках, подключается к издателю, получает метаданные об изменениях и выполняет их на подписчике. Обратите внимание, что для pull - подписки существуют отдельные экземпляры Merge Agents на дистрибуторе и на подписчике. Вы можете использовать этот факт в своих интересах и запускать их под различными учетными записями, фактически регулируя уровень доступа, который подписчик имеет в базе данных distribution (и на сервере). Независимо от места запуска, Merge Agent нуждается в праве на чтение в папке снимков (по умолчанию это: "Program Files\Microsoft SQL Server\MSSQL\Repldata") на дистрибуторе. При работе в составе Active Directory, Вы можете публиковать там экземпляры SQL Server, их базы данных и статьи для репликации как объекты домена. С одной стороны, это упрощает к ним доступ и облегчает их поиск для легитимных подписчиков; но с другой стороны, это потенциально выставляет их напоказ тем, кому об этих публикациях знать не положено. Как Вы можете видеть, аспекты безопасности репликации баз данных SQL Server 2000 довольно сложны. К счастью, работа с ними значительно упрощена при использование мастеров, и предупреждений, которые выдаются ими в процессе конфигурирования, а также параметров по умолчанию, которые учитывают типовые требования безопасности. |
Перевод: Александра Гладченко 2004г. |