Ajouter des identités AppPool IIS 7 en tant que connections SQL Server

J'utilise un site Web IIS 7 avec un AppPool de mode Pipeline embedded . Le AppPools ne fonctionne pas sous NetworkService, etc .. identité (par but), mais utilise son propre AppPool Identitiy (IIS AppPool \ MyAppPool).

C'est ce qu'on appelle un count de service ou un count virtuel. (un count d'user, qui n'est pas un count complet …)

Je souhaite accorder à ce count de service (IIS AppPool \ MyAppPool) les permissions de connection à mon SQL Server 2008 Express (en mode d'authentification mixte).

Alors que SQL Server peut append n'importe quel count d'user normal, le count virtuel IIS AppPool \ MyAppPool ne peut pas être ajouté aux connections valides (SQL Server indique que le count est introuvable).

Y a-t-il un truc, tout ce dont j'ai besoin pour activer les counts virtuels? (Le process w3wp.exe s'exécute sous cette identité en fonction de taskmgr, mais je ne peux pas non plus utiliser le count en security NTFS …)

Merci de votre aide!

Le "IIS APPPOOL \ AppPoolName" fonctionnera, mais comme mentionné précédemment, il ne semble pas être un nom AD valide donc lorsque vous le searchz dans la boîte de dialog "Sélectionner un user ou un groupe", il n'apparaîtra pas (en réalité , il va le find, mais il pensera que c'est un count système réel, et il va essayer de le traiter comme tel … ce qui ne fonctionnera pas, et vous donnera le message d'erreur à ce sujet ne pas être trouvé).

Comment je l'ai fait fonctionner est:

  1. Dans SQL Server Management Studio, searchz le dossier Sécurité (le dossier de security au même niveau que les dossiers Bases de données, Objets server, etc. … et non le dossier de security de chaque database).
  2. Cliquez avec le button droit sur les connections et select "Nouvelle connection"
  3. Dans la zone Nom de connection, tapez IIS APPPOOL \ YourAppPoolName – ne cliquez pas sur Rechercher
  4. Remplissez toutes les autres valeurs que vous aimez (c.-à-d., Type d'authentification, database par défaut, etc.)
  5. Cliquez sur OK

Tant que le nom AppPool existe réellement, le login doit maintenant être créé.

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

En guise de remarque, les process qui utilisent des counts virtuels (NT Service \ MyService et IIS AppPool \ MyAppPool) sont toujours en cours d'exécution sous le count "SERVICE NETWORK", comme le suggère cet article http://www.adopenstatic.com/cs/blogs/ken/ archive / 2008/01/29 / 15759.aspx . La seule différence est que ces process sont membres des groupes "NT Service \ MyService" ou "IIS AppPool \ MyAppPool" (car ce sont en fait des groupes et non des users). C'est également la raison pour laquelle les process s'authentifient sur le réseau comme la machine de la même manière que le count NETWORK SERVICE.

Le moyen de sécuriser l'access est de ne pas dépendre de ces counts n'ayant pas les privilèges NETWORK SERVICE mais d'accorder plus d'permissions spécifiquement à "NT Service \ MyService" ou "IIS AppPool \ MyAppPool" et de supprimer les permissions pour "Utilisateurs" si nécessaire.

Si quelqu'un a des informations plus précises ou contradictoires, veuillez les postr.

Si vous rencontrez des machines, vous devez utiliser le SERVICE RÉSEAU, le SYSTÈME LOCAL, un count de domaine ou un count de service géré SQL 2008 R2 (si vous l'avez) (ce qui est ma preference si vous aviez une telle infrastructure) . Vous ne pouvez pas utiliser un count qui n'est pas visible pour le domaine Active Directory.

C'est peut-être ce que vous cherchez …

http://technet.microsoft.com/en-us/library/cc730708%28WS.10%29.aspx

Je conseillerais également à plus long terme de considérer un user de domaine de droits limité, ce que vous essayez fonctionne bien dans un scénario de machine de silo mais vous devrez faire des changements si vous passez à une autre machine pour le server DB.

Je l'ai compris à travers des essais et des erreurs … le véritable défaut dans l'armure était un réglage peu connu dans IIS dans l' Configuration Editor pour le site Web dans

Section: system.webServer/security/authentication/windowsAuthentication

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

appelé useAppPoolCredentials (qui est défini sur False par défaut) Définir à True et la vie redevient géniale !!! Espérons que cela sauve la douleur pour le prochain gars ….

entrez la description de l'image ici

Regardez: http://www.iis.net/learn/manage/configuring-security/application-pool-identities

 USE master GO sp_grantlogin 'IIS APPPOOL\<AppPoolName>' USE <yourdb> GO sp_grantdbaccess 'IIS APPPOOL\<AppPoolName>', '<AppPoolName>' sp_addrolemember 'aspnet_Membership_FullAccess', '<AppPoolName>' sp_addrolemember 'aspnet_Roles_FullAccess', '<AppPoolName>'