Kezdőlap > Webfejlesztés > IIS AppPool kontra SQL Server Agent

IIS AppPool kontra SQL Server Agent

Írtam már párszor, hogy nagy híve vagyok az IIS 7-ben bevezetett ApplicationPoolIdentity-nek, éppen ezért mindig elszomorít, amikor valahol kiderül, hogy nem lehet használni. Legutóbb az SQL Server Agentnél futottunk bele egy problémába.

Van egy webalkalmazásunk, ami AppPoolIdentity-vel kapcsolódik az SQL Serverhez. Mivel az alkalmazás SQL Server Agent jobokat kezel, ezért a fiók annak rendje és módja szerint megkapta az SQLAgentUserRole és az SQLAgentReaderRole szerepköröket az msdb adatbázisban. Ennek ellenére az sp_add_job tárolt eljárás az alábbi hibával elszáll:

Msg 14234, Level 16, State 1, Line 3
The specified ‘@owner_login_name’ is invalid (valid values are returned by sp_helplogins [excluding Windows NT groups]).

Ilyenkor az ember jóhiszeműen követi az utasításokat, lekérdezi a helyes értékeket az sp_helplogins meghívásával és szomorúan tapasztalja, hogy a kérdéses fiók szerepel a listában. WTF?

Semmi gond, hiszen az sp_add_job kódját könnyen meg lehet találni Management Studioval, amiből rövid bogarászás után kiderül, hogy ez a tárolt eljárás meghívja az sp_verify_job SP-t és valójában az dobja a hibát ennél a sornál:

IF (@owner_sid IS NULL) OR (EXISTS (SELECT *
                                 FROM master.dbo.syslogins
                                 WHERE (sid = @owner_sid)
                                   AND (isntgroup <> 0)))
BEGIN
  SELECT @res_valid_range = FORMATMESSAGE(14203)
  RAISERROR(14234, -1, -1, '@owner_login_name', @res_valid_range)
  RETURN(1) -- Failure
END

Innen már nem kell messzire menni: kérdezzük le a master.dbo.syslogins tartalmát és látni fogjuk, hogy a kérdéses sorban az isntgroup értéke bizony 1. Deadlock Mérges

Jobb ötlet híján feldobtam bugként a Connectre, ha ez szerinted is probléma, szavazz rá:

Microsoft Connect: IIS ApplicationPoolIdentity cannot be a SQL Agent job owner

 

Kategóriák:Webfejlesztés Címkék:, , ,
  1. 2011.11.2. 20:25 - 20:25 | #1

    Nem biztos, hogy az App Pool-nak adnék ilyen szintű jogokat. Inkább elgondolkodnék az EXECUTE AS használatán a sproc-ban.

  1. 2012.01.26. 8:34 - 08:34 | #1

MINDEN VÉLEMÉNY SZÁMÍT!

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Módosítás )

Twitter kép

You are commenting using your Twitter account. Log Out / Módosítás )

Facebook kép

You are commenting using your Facebook account. Log Out / Módosítás )

Kapcsolódás: %s

Follow

Get every new post delivered to your Inbox.

Join 34 other followers