Подтвердить что ты не робот

Не удалось получить информацию о пользователе группы Windows NT

Я создаю репликацию SQL Server с помощью script. Когда я пытаюсь выполнить

The job failed. Unable to determine if the owner (STAR\moorer7) of job L3BPT2M-Atlas-14 has server access (reason: Could not obtain information about Windows NT group/user 'STAR\moorer7', error code 0x5. [SQLSTATE 42000] (Error 15404)).

Это задание, созданное script, которое определяет репликацию.

Как мне отладить это?

4b9b3361

Ответ 1

Active Directory отказывается от доступа к вашему агенту SQL. Агент должен работать под учетной записью, которая распознается контроллером домена STAR.

Ответ 2

Для меня задания выполнялись под DOMAIN\Administrator и с ошибкой с сообщением об ошибке "The job failed. Unable to determine if the owner (DOMAIN\administrator) of job Agent history clean up: distribution has server access (reason: Could not obtain information about Windows NT group/user 'DOMAIN\administrator', error code 0x5. [SQLSTATE 42000] (Error 15404)). Чтобы исправить это, я изменил владельца каждого неудачного задания на sa. Работал безупречно после что. Рабочие места были связаны с очисткой репликации, но я не уверен, были ли они добавлены вручную или были добавлены как часть настройки репликации. Я не был связан с ней, поэтому я не уверен.

Ответ 3

Мы столкнулись с подобными ошибками в тестовой среде на виртуальной машине. Если имя машины изменяется из-за клонирования виртуальной машины из шаблона, вы можете получить эту ошибку.

Если имя компьютера изменилось с OLD на NEW.

В задании используется эта хранимая процедура:

msdb.dbo.sp_sqlagent_has_server_access @login_name = 'OLD\Administrator'

Что использует этот:

EXECUTE master.dbo.xp_logininfo 'OLD\Administrator'

Что дает эта ошибка SQL 15404

select text from sys.messages where message_id = 15404;
Could not obtain information about Windows NT group/user '%ls', error code %#lx.

Я думаю, что это правильно, в данных обстоятельствах. Мы добавили script к процессу клонирования/развертывания виртуальной машины, который заново создает логин SQL.

Ответ 4

В моем случае я получал эту ошибку, пытаясь использовать функцию IS_ROLEMEMBER() на SQL Server 2008 R2. Эта функция недействительна до SQL Server 2012.

Вместо этой функции я закончил использование

select 1 
from sys.database_principals u 
inner join sys.database_role_members ur 
    on u.principal_id = ur.member_principal_id 
inner join sys.database_principals r 
    on ur.role_principal_id = r.principal_id 
where r.name = @role_name 
and u.name = @username

Значительно более подробный, но он выполняет свою работу.

Ответ 5

Просто решил эту проблему. В моем случае контроллер домена не был доступен, поскольку оба сервера DNS были google dns.

Я просто добавляю в контрольный список для этой проблемы:

  • проверить доступ к контроллеру домена

Ответ 6

У меня была та же проблема, которая, как оказалось, была вызвана регистрацией домена, которая заставляет SQL-службу блокироваться в AD. Блокировка была вызвана несвязанным использованием учетной записи службы для другой цели с неправильным паролем.

Ошибки, полученные из журналов агента SQL, не упоминают имя учетной записи службы, просто имя пользователя (владельца задания), которое не может быть аутентифицировано (поскольку оно использует учетную запись службы для проверки с помощью AD).

Ответ 7

Мне пришлось подключиться к VPN, чтобы скрипт публикации успешно развернулся в БД.

Ответ 8

В нашем случае учетная запись службы Windows, под которой работали SQL Server и агент SQL, была заблокирована в Active Directory.