Проблема с разрешениями репликации слиянием SQL Server

У меня настроена репликация слиянием с публикацией на нашем сервере разработки (SQL Server 2008 R2 SP2) и подпиской на моем локальном компьютере. Издательство выступает в качестве собственного дистрибьютора. Соединения издателя и распространителя в свойствах подписки на моем локальном компьютере используют логин (с сервера разработки), который находится в списке доступа к публикации (PAL) публикации. Если я добавлю этот логин в роль сервера sysadmin на издателе, все будет работать нормально, когда я синхронизирую подписку. Но если я удаляю логин из роли сервера sysadmin, синхронизация не работает - я получаю тайм-аут ("Операция истекла").

Насколько я понял, мне просто нужно было добавить логин в PAL, но я должен что-то упустить с необходимыми разрешениями.

Другой вопрос, который у меня есть, заключается в том, можно ли создать роль базы данных, члены которой будут автоматически добавляться в PAL. Я где-то читал, что это возможно с SQL Server 2008 SP3; Мне интересно, возможно ли это с SP2. Или есть способ создать роль базы данных, которая будет иметь все необходимые разрешения, чтобы ее участники (пользователи) могли использоваться в подписке (как соединения издателя и распространителя)?

Предыстория всего этого в том, что у нас есть пользователи, которые подпишутся на нашу публикацию, но мы хотим реплицировать данные только на основе их входа в систему. Итак, у нас есть строки фильтров в наших статьях, которые используют SUSER_SNAME().

Заранее спасибо.

Брэд


person user1360192    schedule 31.05.2013    source источник


Ответы (1)


Если это принудительная подписка, то учетная запись процесса агента слияния, используемая для установления соединений с издателем и распространителем, должна быть db_owner в базе данных распространителя, быть членом PAL, логином, связанным с пользователем в базе данных публикации, и должна быть прочитана разрешения на общий доступ к моментальным снимкам.

Если это подписка по запросу, то учетная запись процесса агента слияния, используемая для подключения к подписчику, должна быть db_owner в базе данных подписки. Учетная запись, используемая для подключения к издателю и распространителю, должна быть членом PAL, логином, связанным с пользователем в базе данных публикации и распространителя, и иметь разрешения на чтение общего ресурса моментальных снимков.

Все это описано в разделе Разрешения, которые требуются агентам в Модель безопасности агента репликации.

person Brandon Williams    schedule 31.05.2013
comment
Спасибо, Брэндон. В свойствах публикации в разделе «Снимок» я установил флажок «Помещать файлы в следующую папку»; путь к файлу - это общий ресурс где-то в нашей сети. Означает ли наличие разрешений на чтение общего ресурса моментальных снимков, что учетная запись, которую я использую для подключений издателя и распространителя, должна иметь разрешения на чтение папки, в которой находятся файлы моментальных снимков? - person user1360192; 01.06.2013
comment
Извините за задержку, да, учетная запись, которую вы используете для подключения издателя и распространителя, должна иметь права на чтение папки моментальных снимков. - person Brandon Williams; 04.06.2013
comment
Я не добавил пользователя в свою базу данных распространителя. Как только я это сделал, все заработало нормально. Еще раз спасибо, Брэндон. - person user1360192; 07.06.2013