servidor - Adicionar identidades do AppPool do IIS 7 como logons do SQL Server




servidor de banco de dados windows server (6)

Como um processo de nota lateral que usa contas virtuais (NT Service \ MyService e IIS AppPool \ MyAppPool) ainda estão sendo executados na conta "NETWORK SERVICE" como esta publicação sugere http://www.adopenstatic.com/cs/blogs/ken/archive/2008/01/29/15759.aspx . A única diferença é que esses processos são membros dos grupos "Serviço NT \ MyService" ou "IIS AppPool \ MyAppPool" (pois são, na verdade, grupos e não usuários). Esta também é a razão pela qual os processos autenticam na rede como a máquina da mesma forma que a conta do NETWORK SERVICE.

A maneira de proteger o acesso não depende de as contas não terem privilégios de SERVIÇO DE REDE, mas de conceder mais permissões especificamente para "Serviço NT \ MyService" ou "IIS AppPool \ MyAppPool" e para remover permissões de "Usuários", se necessário.

Se alguém tiver informações mais precisas ou contraditórias, por favor poste.

Estou executando um site do IIS 7 com um AppPool do modo de pipeline integrado . O AppPools NÃO é executado sob NetworkService, etc. identidade (por finalidade), mas usa sua própria AppPool Identitiy (IIS AppPool \ MyAppPool).

Esta é uma conta de serviço ou conta virtual. (uma conta de usuário, que não é uma conta completa ...)

Gostaria de conceder a essa conta de serviço (IIS AppPool \ MyAppPool) permissões para se conectar ao meu SQL Server 2008 Express (em execução no Modo de Autenticação Misto).

Embora o SQL Server possa adicionar qualquer conta de usuário normal, a conta virtual do IIS AppPool \ MyAppPool não pode ser adicionada aos logons válidos (o SQL Server informa que a conta não pode ser encontrada).

Existe algum truque, qualquer coisa que eu preciso habilitar para fazer as contas virtuais funcionarem? (o processo w3wp.exe é executado sob essa identidade de acordo com o taskmgr, mas não consigo usar a conta na segurança NTFS também ...)

Obrigado pela ajuda!


Eu descobri através de tentativa e erro ... o verdadeiro furo na armadura era uma configuração pouco conhecida no IIS no Configuration Editor do site em

Section: system.webServer/security/authentication/windowsAuthentication

From: ApplicationHost.config <locationpath='ServerName/SiteName' />

chamado useAppPoolCredentials (que é definido como False por padrão. Defina isso para True e a vida se torna grande novamente! Espero que isso salve a dor para o próximo cara ....


No meu caso, o problema foi que eu comecei a criar um projeto de amostra MVC Alloy a partir do zero usando a extensão Visual Studio / Episerver e funcionou bem quando executado usando o Visual Studio Express Express local. No entanto, por padrão, ele aponta o banco de dados sql para o LocalDB e, quando implantei o site no IIS local, ele começou a fornecer alguns dos erros iniciais que resolvi: 1.Adicionando a ligação de url do site local a C: / Windows / System32 / drivers / etc / hosts 2. Em seguida, editando o application.config encontrou o local do arquivo clicando com o botão direito no IIS express no canto inferior direito da tela ao executar o site usando o Visual Studio e adicionando a ligação lá para o local iis url. 3. Finalmente eu estava preso com "incapazes de acessar erros de banco de dados" para o qual eu criei um novo banco de dados em branco no Sql express e alterei a cadeia de conexão na web config para apontar para meu novo banco de dados e depois no console gerenciador de pacotes Comandos Episerver DB como - 1. initialize-epidatabase 2. update-epidatabase 3. Convert-EPiDatabaseToUtc


O "IIS APPPOOL \ AppPoolName" funcionará, mas, como mencionado anteriormente, ele não parece ser um nome AD válido, portanto, quando você procurá-lo na caixa de diálogo "Selecionar usuário ou grupo", ele não será exibido (na verdade, , ele vai encontrá-lo, mas ele vai pensar que é uma conta do sistema real, e ele vai tentar tratá-lo como tal ... o que não vai funcionar, e lhe dará a mensagem de erro sobre ele não ser encontrado).

Como eu consegui isso funcionar é:

  1. No SQL Server Management Studio, procure a pasta Segurança (a pasta de segurança no mesmo nível das pastas Bancos de Dados, Objetos de Servidor, etc. ... não a pasta de segurança em cada banco de dados individual)
  2. Clique com o botão direito em logins e selecione "New Login"
  3. No campo Nome de logon, digite IIS APPPOOL \ YourAppPoolName - não clique em pesquisa
  4. Preencha todos os outros valores que você gosta (ou seja, tipo de autenticação, banco de dados padrão, etc.)
  5. Clique OK

Enquanto o nome do AppPool realmente existir, o login deverá ser criado agora.



CREATE LOGIN [IIS APPPOOL\MyAppPool] FROM WINDOWS;
CREATE USER MyAppPoolUser FOR LOGIN [IIS APPPOOL\MyAppPool];




iis-7