Одноранговая репликация сервера sql. Агенты, работающие как NT AUTHORITY\NETWORK SERVICE?
На тестовом стенде я пытаюсь заставить работать одноранговую (транзакционную) репликацию SQL Server 2005 с агентами репликации, работающими под NT AUTHORITY\NETWORK SERVICE
учетная запись.
Перед этим я настроил одноранговую репликацию с агентами, работающими под учетной записью службы агента SQL Server (то есть с учетной записью SYSTEM), и создал группу безопасности в AD, содержащую учетные записи компьютеров. Я дал этой группе необходимые разрешения на dbs, PAL, дистрибьютор. Это работало нормально.
Если я пытаюсь выполнить точно такую же настройку с агентами, работающими как NT AUTHORITY\NETWORK SERVICE (или NT AUTHORITY\NETWORKSERVICE - без пробела, я пробовал оба), я вижу следующую ошибку в мониторе репликации:
Невозможно запустить выполнение (причина: ошибка аутентификации прокси-сервера Nt Authority\Network Service, системная ошибка: ошибка входа: неизвестное имя пользователя или неверный пароль)
Я также попытался сделать сетевой сервис sql-логином на каждом сервере и назначить ему роль sysadmin. Это не имеет значения. Разве невозможно запустить агент репликации в качестве сетевой службы?
(примечание - я знаю, что могу использовать учетную запись AD с именем пользователя / паролем. По разным причинам мы не хотим этого делать в этом случае)
1 ответ
В интересах Даффмана и всех остальных мы нашли нестандартное решение для этого.
Если вы посмотрите на задания агента SQL Server для каждого агента репликации, в свойствах заданий будут показаны параметры командной строки, необходимые для агентов распространителя (distrib.exe), средства чтения журнала (logread.exe) и моментального снимка (snapshot.exe).
Я написал небольшую службу Windows на C#, которая запускает этих агентов с этими параметрами командной строки, и настроил эту службу для запуска под учетной записью сетевой службы. Это отлично работает.
Чтобы это работало, вы должны удалить задания из SQL агента сервера, который запускает агенты репликации. Также, когда агенты запускаются таким образом, инструменты графического интерфейса, которые управляют агентами (например, запускают синхронизацию из монитора репликации), больше не работают, поэтому я добавил некоторые функциональные возможности в службу Windows, чтобы заменить их.
Но все остальное (оповещения, отчеты и т. Д.) Кажется нормальным. Мы тестировали эту конфигурацию в течение нескольких месяцев и не обнаружили никаких проблем с ней.
Обратите внимание, что если вы не хотите писать службу Windows, вы можете сделать то же самое с командным файлом и запустить его с помощью запланированной задачи или srvany (именно так мы впервые проверили это).