
Encuentro el siguiente error:
Cannot open database "testbase" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\Web2'.
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 "testbase" requested by the login. The login failed.
Login failed for user 'IIS APPPOOL\Web2'.
Entonces, ¿dónde puedo darle permiso Web2 a este usuario? (Por cierto, el servidor no tiene dicho usuario Web2
, pero hay una carpeta llamada Web2
ubicada en la carpeta wwwroot).
Busco respuestas pero todas fallaron de la siguiente manera:
[1] Agregue el usuario IUSR
a la carpeta y otorgue permiso de lectura.
[2]http://www.codekicks.com/2008/11/cannot-open-database-northwind.html
Respuesta1
Debe agregar un usuario a su servidor SQL con el nombre de usuario "IIS APPPOOL\Web2" y otorgarle acceso a la base de datos. Tenga en cuenta que lo haránoVes este nombre de usuario en la búsqueda peropodríaverá que cambia a subrayado si hace clic en "verificar nombres".
El usuario realmente no existe en la máquina excepto para administrar los permisos del grupo de aplicaciones.
Alternativamente, puede configurar el grupo de aplicaciones para que se ejecute como un usuario diferente.
Para más información, verhttp://blogs.iis.net/webdevelopertips/archive/2009/10/02/tip-98-did-you-know-the-default-application-pool-identity-in-iis-7-5-windows- 7-cambiado-de-servicio-de-red-a-apppoolidentity.aspxyhttp://learn.iis.net/page.aspx/624/application-pool-identities/
A continuación se muestra un ejemplo de la lista de inicios de sesión de SQL Server:
A continuación se muestra un ejemplo de la lista de inicios de sesión de una base de datos:
Aquí están los detalles del usuario de la base de datos: (Tenga en cuenta que ambos cuadros tienen el mismo nombre. El segundo cuadro debe coincidir con un nombre de inicio de sesión de la lista de inicios de sesión de SQL Server).
También puedes intentar usar código en lugar de la GUI:
USE [master]
GO
CREATE LOGIN [IIS APPPOOL\Web2] FROM WINDOWS WITH DEFAULT_DATABASE=[testbase]
GO
USE [testbase]
GO
CREATE USER [IIS APPPOOL\Web2] FOR LOGIN [IIS APPPOOL\Web2]
GO
EXEC sp_addrolemember N'db_owner', N'IIS APPPOOL\Web2'
GO
Asigné permisos de propietario, pero es posible que su aplicación pueda funcionar con permisos más bajos. Por lo general, se considera una buena práctica otorgar los permisos más bajos posibles.