
Eu encontro o seguinte erro:
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'.
Então, onde posso dar permissão Web2 a esse usuário? (A propósito, o servidor não possui esse usuário, Web2
mas existe uma pasta chamada Web2
localizada na pasta wwwroot.)
Procuro respostas, mas todas falharam da seguinte forma:
[1] Adicione o usuário IUSR
à pasta e conceda permissão de leitura.
[2]http://www.codekicks.com/2008/11/cannot-open-database-northwind.html
Responder1
Você precisa adicionar um usuário ao SQL Server com o nome de usuário "IIS APPPOOL\Web2" e conceder a esse usuário acesso ao banco de dados. Observe que você vainãoveja este nome de usuário na pesquisa, mas vocêpoderveja-o mudar para sublinhado se você clicar em "verificar nomes".
O usuário realmente não existe na máquina, exceto para gerenciar as permissões do pool de aplicativos.
Como alternativa, você pode configurar o pool de aplicativos para ser executado como um usuário diferente.
Para mais informações, vejahttp://blogs.iis.net/webdevelopertips/archive/2009/10/02/tip-98-did-you-know-the-default-application-pool-identity-in-iis-7-5-windows- 7-alterado-de-networkservice-to-apppoolidentity.aspxehttp://learn.iis.net/page.aspx/624/application-pool-identities/
Aqui está um exemplo da lista de logins do SQL Server:
Aqui está um exemplo de lista de logins de um banco de dados:
Aqui estão os detalhes do usuário do banco de dados: (Observe que ambas as caixas têm o mesmo nome. A segunda caixa deve corresponder a um nome de login da lista Logins do SQL Server.)
Você também pode tentar usar código em vez da 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
Atribuí permissões de proprietário, mas seu aplicativo pode conseguir obter permissões mais baixas. Geralmente é considerado uma boa prática conceder as permissões mais baixas possíveis.