Local Activation Permission probléma

Azt hiszem az utóbbi hetekben túl sok SQL Server bug-ot és problémát láttam. Ezek közzül kettő kedvencem van:

  • Non-Yielding Scheduler: erről egy későbbi bejegyzésben térek ki, itt még memory dump-okat kell elemezzek.
  • Local Activation Failure: ez utóbbiról szól ez a bejegyzés.

Az SQL Agent-ben volt egy olyan job, ami egy SSIS csomagot próbált “megrántani” minden 15. percben és a következő hibaüzenetet találtam minden 15. percben a System Eventlog-ban:

The application-specific permission settings do not grant Local Activation permission for the COM Server application with CLSID
{FDC3723D-1588-4BA3-92D4-42C430735D7D}
and APPID
{83B33982-693D-4824-B42E-7196AE61BB05}
to the user DOMAIN\SQLAgentUser SID (S-1-5-21-0000000000-0000000000-000000000-0000) from address LocalHost (Using LRPC). This security permission can be modified using the Component Services administrative tool.

A hibaüzenet alapján a következő megállapításokat tehetjük: valaminek nincs joga valamihez ;-). Egész pontosan az SQL Agent felhasználómnak nem volt Local Activation és Local Launch joga az Microsoft SQL Server Integration Services 11.0 szolgáltatáshoz. Ez azért fordulhatott elő, mert a service account nem tagja a helyi Administrators csoportnak. Megjegyzem nem is szabad betenni biztonsági okok miatt – minimum jogosultság elvét kell alkalmazni.

A megoldása a hibának igen egyszerű:

  • Indítsuk el a comexp.msc-t
  • Keressük meg a SQL Server Integration Services 11.0-t (lsd képen) 
  • Jobb egérgomb megnyomása után menjünk a Properties menüpontra
  • Menjünk a Security fülre, majd a Launch and Activation Permissions részen nyomjuk meg az Edit gombot.
  • Adjuk hozzá az SQL Agent felhasználónkat Local Launch és Local Activation joggal.

Természetesen, ha az SQL Agent Local System nevében fut, akkor ez a probléma nem jön elő, mert ugye annak több mint elég joga van.

Add comment