Соединение с базой данных (Невозможно открыть базу данных "VRM", запрошенную при входе в систему.) - PullRequest
0 голосов
/ 13 апреля 2019

Я получаю сообщение об ошибке при запуске моего сайта на хосте. Невозможно открыть соединение с базой данных для следующих приложений. Получено исключение. Сообщение: Невозможно открыть базу данных "VRM", запрошенную при входе в систему. Ошибка входа Ошибка входа для пользователя Ошибка входа для пользователя 'IIS APPPOOL \ DefaultAppPool'.

Login failed for user 'IIS APPPOOL\DefaultAppPool'.

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

Exception Details: System.Data.SqlClient.SqlException: Cannot open database "VRM" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\DefaultAppPool'.

Source Error:


Line 33:             {
Line 34: 
Line 35:                 throw;
Line 36: 
Line 37:             }


Source File: D:\Final Code\VRM\VRM\Manager\LoginManager.cs    Line: 35

Stack Trace:


[SqlException (0x80131904): Cannot open database "VRM" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\DefaultAppPool'.]

1 Ответ

0 голосов
/ 14 апреля 2019

Просматривая строки подключения, либо измените их оба на Имя пользователя / пароль, либо предоставьте этой учетной записи доступ к целевой базе данных. Вы можете обеспечить доступ с помощью сценария, подобного следующему, который предоставит полный контроль над удостоверением пула приложений в целевой базе данных:

use vrm

create login [IIS APPPOOL\DefaultAppPool] from windows
create user [IIS APPPOOL\DefaultAppPool] for login [IIS APPPOOL\DefaultAppPool]
grant control to [IIS APPPOOL\DefaultAppPool]

Вы можете запустить скрипт после подключения к SQL Server, используя SQL Server Management Studio или средство командной строки sqlcmd.exe.

Для производственного приложения вы хотите ограничить разрешения, предоставляемые идентификатору приложения. Это поможет защитить от уязвимостей SQL-инъекций. EG

use vrm

create login [IIS APPPOOL\DefaultAppPool] from windows
create user [IIS APPPOOL\DefaultAppPool] for login [IIS APPPOOL\DefaultAppPool]
create role AppUser
grant select, execute, insert, update, delete on schema::dbo to AppUser
alter role AppUser add member [IIS APPPOOL\DefaultAppPool]
...