IIS ApplicationPoolIdentity beengedése az SQL Serverbe

Ha egy webhelyet az IIS-ben az ApplicationPoolIdentity nevében futtatunk és a webhely mögött Windows integrált hitelesítéssel működő SQL Server áll, akkor ezt a virtuális fiókot kell beengednünk az SQL Serverbe.

Ez nehezebb, mint gondolnánk, ugyanis az SQL Server Management Studio az alábbi hibaüzenettel tud megörvendeztetni:

Alter failed for User ‘IIS APPPOOL\DefaultAppPool’.  (Microsoft.SqlServer.Smo)

The DEFAULT_SCHEMA clause cannot be used with a Windows group or with principals mapped to certificates or asymmetric keys. (Microsoft SQL Server, Error: 15259)

Szerencsére ez csak GUI probléma, az SQL Servernek egyébként semmi baja az AppPoolIdentity-vel, tehát némi kézimunkával leküzdhető a probléma:

  CREATE LOGIN [IIS APPPOOL\DefaultAppPool] FROM WINDOWS
  CREATE USER [DefaultAppPoolUser] FOR LOGIN [IIS APPPOOL\DefaultAppPool]
  sp_addrolemember N'bármilyen szerepkör', N'DefaultAppPoolUser'
Technorati-címkék: ,,

8 thoughts on “IIS ApplicationPoolIdentity beengedése az SQL Serverbe

  1. Visszajelzés: IIS AppPool kontra SQL Server Agent « Balássy György szakmai blogja

  2. Visszajelzés: IIS AppPool kontra SQL Server Agent - Balássy György szakmai blogja - devPortal

  3. Pál Miklós

    Ezt írtad, erre vonatkozik a kérédés:

    “Ha egy webhelyet az IIS-ben az ApplicationPoolIdentity nevében futtatunk és a webhely mögött Windows integrált hitelesítéssel működő SQL Server áll, akkor ezt a virtuális fiókot kell beengednünk az SQL Serverbe.”

    Ezzel kapcsolatos problémára keresem a magyarázatot:

    ASP.NET webalkalmazásban Forms hitelesítést használok, adatbázisban tárolt azonosítással. Ennek az adatbázisnak az eléréséhez használok egy connection stringet, amiben adatbázifelhasználót adok meg (nem Windows felhasználót). IIS alatt hostolva a fenti problémát tapasztalatm, vagyis a megadott user helyett az IIS user nevében kapcsolódott. Az IIS usert felvettem az SQL szerverbe, ezután működött. A kérdés a fent idézett mondattal kapcsolatos: ha az SQL szerverhez lehet csatlakozni Windows-felhasználóként (Windows-hitelesítéttel) és SQL felhasználóként egyránt, akkor miért nem képes a connection stringben megadott SQL server userrel bejelentkezni? Milyen feltételek mellett lenne erre képes?

    Kösz,

    Pál Miklós

    1. Balássy György Szerző

      Miklós, ezer százalékig biztos vagy benne, hogy jó a connection stringed és tényleg nem Windows integrált hitelesítéssel kellene bejelentkeznie, hanem egy SQL user nevében, és az SQL Server is Mixed Mode authentikációra van kapcsolva?

  4. Pál Miklós

    1. SQL Server (2008 – NEM R2) | Server authentication = SQL Server and Windows Authentication mode
    2. A connection string jó, ha a VS által indított applikáció hostolja, akkor használja, de ha IIS alatt futtatom, és elrontom az adatbázisnevet, akor elromlik, de ha a felhasználónevet rontom el, akkor működik, mert már az SQL-be felvettem a fenti IIS… usert.
    3. Biztos, hogy SQL felhasználó van a connection stringben.

    Az IIS-en “DefaultAppPool”-ban van, nem az “ASP.NET 4.0”-ban. Nem tudom, hogy ennek lehet-e köze hozzá. (Ki fogom próbálni, habár a nevükön kívül nem látok különbséget közöttük. Mindkettő az ApplicationPoolidentity-re van állítva.)

    1. Balássy György Szerző

      Az IIS Managerben az IIS Authentication modulban az Anonymous Authenticationnél van az opció, hogy az IUSR felhasználó vagy az ApplicationPoolIdentity nevében fusson, de ennek nem szabadna kihatnia az adatbázis kapcsolatra, hiszen ott a connection string határozza meg az authentikációt.
      Biztos, hogy a connection stringben nem Windows authentikáció van megadva?

  5. Pál Miklós

    A válaszod segítségével megtaláltam az okát: Integrated Security=True volt beállítva a connection stringben. A mentségem csak annyi, hogy a paraméter elnevezése nem túlságosan intuitív. Kösz!

    “When false, User ID and Password are specified in the connection. When true, the current Windows account credentials are used for authentication.
    Recognized values are true, false, yes, no, and sspi (strongly recommended), which is equivalent to true.”

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s