Добавить пользователя в SQL Server 2008 - разрешение отклонено - PullRequest
4 голосов
/ 11 февраля 2009

У меня недавно было некоторые проблемы , которые, я думаю, могли бы помочь отладкой моего приложения ASP.NET MVC в IIS вместо использования сервера разработки ASP.NET по умолчанию. Тем не менее, когда я пытаюсь это сделать, приложение не может получить доступ к серверу базы данных (MS SQL Server 2008 Express), хотя оно отлично работает на сервере разработки.

Я получаю ошибку

Cannot open database 'myDbName' requested by the login. The login failed. Login failed for user 'NT INSTANCE/NETWORK SERVICE'.

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

Я попытался добавить пользователя NETWORK SERVICE в базу данных, но оказалось, что у меня нет привилегий для этого - не имеет значения, что моя учетная запись Windows, с которой я захожу на сервер, - это admin или что я запускаю программу в контексте администратора. Я просто не могу добавить другого пользователя в БД.

Как мне решить эту проблему?

Ответы [ 3 ]

3 голосов
/ 11 февраля 2009

Вы можете изменить пользователя, под которым работает IIS: это параметр в свойствах для ApplicationPool, под которым работает ваш веб-сайт.

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

1 голос
/ 11 февраля 2009

NETWORK SERVICE - это специальный аккаунт. Если ваш сервер базы данных находится на другом компьютере с вашего сервера IIS, вам нужно добавить учетную запись:

\ $ как пользователь для базы данных. Поэтому, если вы работаете на сервере IIS с именем LISA в сети SPRINGFIELD, вам необходимо предоставить доступ к базе данных SPRINGFIELD \ LISA $. Обратите внимание на знак доллара, который обозначает вашего пользователя как учетную запись компьютера, а не как человека.

Если ваш сервер базы данных и ваш сервер IIS совпадают, предоставьте доступ к учетной записи "NT AUTHORITY \ NETWORK SERVICE". Вот и все название аккаунта. И это должно сработать.

0 голосов
/ 07 мая 2009

Вы используете неанглийскую операционную систему?

По некоторым причинам имя учетной записи «NT Authority \ Network Service» было локализовано на других языках.
К сожалению, многие программы имеют имя учетной записи, жестко запрограммированное на английское имя, и не могут найти сетевую службу при работе на сторонних версиях Windows.

...