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

Ошибка входа для пользователя "IIS APPPOOL\myAppPool

У меня есть следующее сообщение об ошибке:

Невозможно открыть базу данных "SmallBakery", запрошенную при входе в систему. Ошибка входа в систему. Ошибка входа для пользователя "IIS APPPOOL\MyAppPool"

Как это исправить? Я использую Windows 7 Enterprise Edition и Sql server 2012.

4b9b3361

Ответ 1

Если вы не измените, каждый пул приложений будет иметь свою личность. В вашем случае просто добавьте нового пользователя в свою базу данных SmallBakery с именем IIS APPPOOL\MyAppPool, используя SQL Management Studio. Вы найдете список пользователей в поддиапазоне "Безопасность/Пользователи" вашей базы данных. Это должно выглядеть примерно так:

enter image description here

Для тестирования пусть пользователь входит в роль db_owner. Если это сработает, удалите эту роль и просто позвольте ей быть членом db_datareader и db_datawriter.

Таким образом, каждый пул приложений (возможно, каждый веб-сайт, если все они используют собственный пул приложений), имеет доступ только к соответствующей базе данных.

Ответ 2

Это зависит от того, как вы хотите аутентифицироваться в своем приложении. Вы пытаетесь использовать олицетворение в своем приложении?

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

Ответ 4

Как и другие пользователи, вам нужно взять пользователя системы приложений (IIS AppPool\myapppool) и добавить его в качестве пользователя базы данных для этой базы данных с соответствующими разрешениями.

Обратите внимание, что это будет работать только на вашем IIS/Server, но если вы планируете переносить приложение на другой сервер IIS/Sql, это потребует изменений как в SQL Server, так и в IIS. Id предлагает вам также рассмотреть аутентификацию SQL-сервера - это может быть более удобно для вашего конкретного случая.