Ошибка при добавлении агента чтения журнала репликации с логином - PullRequest
0 голосов
/ 16 мая 2018

При попытке добавить агент чтения журнала для репликации SQL Server со следующим:

exec sp_addlogreader_agent 
  @job_login = 'DANSLAB\repl_logreader'  
, @job_password = 'replP4ss'  
, @publisher_security_mode = 1

Я получаю следующую ошибку:

Msg 3930, Level 16, State 1, Procedure msdb.dbo.sp_grant_login_to_proxy, 
Line 70 [Batch Start Line 2]
The current transaction cannot be committed and cannot support operations 
that write to the log file. Roll back the transaction.
Msg 3931, Level 16, State 1, Procedure sys.sp_MSrepladdproxyaccount, Line 
129 [Batch Start Line 2]
The current transaction cannot be committed and cannot be rolled back to a 
savepoint. Roll back the entire transaction.

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

Это я играю на своей собственной машине, и я начинаю задаваться вопросом, может быть, это моя установка.

  • Используется локальная учетная запись Windows
  • Редакция SQL Server 2017 Dev
  • Windows 10 Home edition (может быть, это?)

Все остальное до этого, напримерНастройка базы данных dist, издателя и настройка базы данных для публикации, кажется, подойдет.

Я выполнил следующий штраф (действие непосредственно перед добавлением задания для чтения журнала):

exec sp_replicationdboption @dbname= 'WideWorldImporters-Full', @optname = 
'publish', @value = 'true'

Интересно, если этомогут быть и права, но после предоставления пользователю repl_logreader sysadmin доступа к instace и даже полных прав администратора на моей машине я все равно получаю то же самое.

После двух ночей на этом любая помощь будет принята с благодарностью.

1 Ответ

0 голосов
/ 12 июня 2018

Наконец-то! Я не совсем понимаю механику этого, поэтому, если кто-то может объяснить, пожалуйста, сделайте это.

Похоже, это продукт онлайн-входа в Microsoft. Я вхожу в Windows 10, используя мою учетную запись Затем я запускаю SSMS, PoSh и т. Д. Оттуда. выполнение «select susername ()» дает мне:

MicrosoftAccount \ myuser@domain.com

конечно, локальные пользователи, которых я создал, были бы что-то вроде "PCName \ replUser"

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

Если есть способ сделать это без необходимости, это было бы здорово. Но доволен этим пока.

...