SQL Server 2012 Не удается войти с учетной записью компьютера

11

Мы переносим сайт IIS / SQL Server с 2008 по 2012 год, и у меня возникла проблема с аутентификацией. Мы используем аутентификацию Windows для аутентификации как DOMAIN\COMPUTER$, но это не работает, выдавая ошибку:

Не удалось войти в систему для пользователя 'DOMAIN \ COMPUTER $'. Причина: не удалось найти логин, соответствующий указанному имени. [КЛИЕНТ: <локальный компьютер>]

Я проверил, что аккаунт существует, и даже удалил и воссоздал его

create login "DOMAIN\COMPUTER$" from windows

Если я сделаю это снова, я получу ответ:

Сообщение 15025, Уровень 16, Состояние 2, Строка 1
Участник сервера 'DOMAIN \ COMPUTER $' уже существует.

( DOMAIN\COMPUTERзаменяется реальным доменом и именем компьютера)

Таким образом, кажется, что сайт запрашивает SQL Server, но SQL Server не очень внимательно смотрит на свои логины.

Что я пропустил?

альт
источник

Ответы:

6

Это , скорее всего , не домен \ компьютер $ на всех. Это сообщение, как известно, вводит в заблуждение. Я думаю, что все, что он хочет, это чтобы "NT AUTHORITY \ NETWORK SERVICE" был предоставлен доступ к серверу. Откройте свойства входа в SQL Server и добавьте эту учетную запись. Также проверьте, какой пользователь используется в IIS для олицетворения анонимного пользователя, это должно быть что-то вроде «IUSR_ServerName». Предоставить доступ и этому пользователю

ча
источник
1
«NT AUTHORITY \ NETWORK SERVICE» уже имеет доступ к серверу. IIS выдает себя за «IUSR» (без _ServerName). Насколько я знал, это не настоящая учетная запись - и я не могу предоставить доступ ни к «DOMAIN \ IUSR», ни к «DOMAIN \ IUSR», так как эти учетные записи не существуют.
альт
У меня это работало для службы Windows
user919426
После долгого утра с помощью мастера копирования базы данных и мастера экспорта-импорта SQL, это единственный ответ, который заставил его работать. Спасибо!
Залакаин
6

И @cha, и @alt имеют правильные подсказки - сообщение об ошибке вводит в заблуждение и Application Pool Identityучаствует (ну, по крайней мере, в моем случае).

Если в пуле приложений вашего приложения IIS используется Application Pool Identityучетная запись пользователя, которую нужно добавить в SQL Server IIS APPPOOL\your_app_pool_name. Примечание: не используйте Search...кнопку в Свойствах входа в систему, чтобы найти этого пользователя - он найдет его, но заменит его, MACHINE_NAME\your_app_pool_nameкоторый не будет работать - просто введите IIS APPPOOL\your_app_pool_nameимя для входа.

Якуб Янушкевич
источник
1
Это работает только тогда, когда ваш веб-сервер и сервер sql находятся в одном окне.
Maxisam
1
Конечно, учетные записи удостоверений пула приложений являются локальными для машины AFAIK, поэтому вы не можете использовать их на других машинах. Просто используйте аутентификацию SQL Server в этом случае или запустите веб-приложение с учетной записью домена.
Якуб Янушкевич
3

Эта проблема должна решаться по-разному в зависимости от настройки сервера.

  1. SQL и IIS сервер находятся на одной машине.

    а. изменить идентификатор пула приложений наNetwork Service

    б. добавьте NT AUTHORITY\NETWORK SERVICEв ваш логин SQL сервера

  2. SQL и IIS сервер находятся на разных машинах.

    а. добавить учетную запись компьютера,, DOMAIN\computer-name$к вашей учетной записи SQL сервера.

    б. идентификация пула приложений остаетсяApplication Pool Identity

maxisam
источник
1

Мне удалось заставить его работать, изменив сайт в IIS для использования Application Pool Identity, затем изменив Идентификацию пула приложений на Network Service. Не стесняйтесь комментировать любые вопросы безопасности, которые могут возникнуть.

альт
источник
Почему бы не использовать пользователя домена для пула приложений, так как у вас есть AD или, что еще лучше, учетная запись службы?
Spörri
0

Я получаю ту же ошибку. Ошибка входа в систему: 18456, уровень серьезности: 14, состояние: 5. Отключение CEIP в SQL Server и использование отчетов об ошибках решило проблему для меня.

Аян Маллик
источник
1
Не могли бы вы подробнее рассказать о своем ответе? Можете ли вы привести какие-либо соответствующие ресурсы? Ваш ответ выскочил как низкокачественный из-за его длины и содержания и может быть удален из-за этого.
Джон aka hot2use