impersonation error

  • getting an error when we execute a job on the server, which was created by Reporting Services. The job is related to a report subscription and it says:

    An impersonation error occurred using the security context of the current user.

    I think this is because the account being used by SQL Agent does not have permission to impersonate an account.

    Can anyone please help me on this?

  • I have encountered the same error. Have you resolved the problem yet ?

  • Hi..

    Did you mention the correct login credentials on report server for the datasource which your report is trying to access..?? B'coz its mendatory that we should store the credentials on report server...

    Thanks alot,

    Niraj

  • Same problem 🙁

  • Impersonation with Windows Authentication which is required for Reporting services is invalid. And when you are running any automation with SQL Server Agent through Asp.net the Agent needs admin permissions. Check below for the default permissions in IIS6 because it is running under the context of the Agent.

    http://support.microsoft.com/kb/812614

    Kind regards,
    Gift Peddie

  • Thanks for ur answer. I will try it again.

  • Hello All, I have been experiencing a similar issue, if I execute the job from Integration Services it runs (the job calls an SSIS package) but the same fails when running from the SQL agent.

    This was the error message I was getting:

    Message

    [298] SQLServer Error: 22046, Impersonation error. [SQLSTATE 42000]

    This are the steps I followed to solve it:

    1) I saved my SSIS package to the SQL Server Package Store

    a) Open SSMS - connect to Integration Services

    b) Create a new Folder {MyFolder} for my package under MSDB - {ServerName} - DTS Packages

    c) Right click on {My Folder} and select Import Package

    Import package from file system.

    Set Protection Level to: "Rely on server storage and roles for access control"

    2) Create a credential

    Open SSMS and create a Credential (Root-Security-Credentials-New)

    Name for my credential: {SSIS_Job_Executor}

    Identity for this credential: {domain\ou-sys1}

    3) Create a proxy account

    on SSMS navigate to SQL Server Agent -> Proxies->

    right click on SSIS Package Execution and pick New Proxy

    My proxy Name: {SSIS_Proxy_Account}

    Credential Name: {SSIS_Job_Executor}

    Subsystem: select all to start with, once it works you can reduce the number of subsystems required

    4)Set up a Domain Account for the SQL Server Agent Service

    a) In this step I added a Windows Domain Account{domain\ou-sys1} to a local group {SQLServer2005SQLAgentUser} that was given the necessary security to become the SQL Server Agent Log On account (it is recommended not to use the Administrators group).

    domain\ou-sys1 account is made a member of group SQLServer2005SQLAgentUser

    reference:

    http://msdn.microsoft.com/en-us/library/ms191543.aspx

    b)Go into SQL Server Configuration Manager, pick SQL Server Agent then right-click for Properties

    pick the Log On Tab

    Select This account, use the domain\ou-sys1 account and type the password for it.

    c) Apply, this will stop and restart the SQL Server Agent

    From this point on the SQL server agent will run under the specified windows account.

    d) You will also need to give access to the user ou-sys1 to any directories/files the ssis package(s) reads/writes during execution.

    5) Schedule your job, run as proxy account {SSIS_Proxy_Account}

    Reference:

    http://msdn.microsoft.com/en-us/library/ms139805(v=sql.90).aspx

Viewing 7 posts - 1 through 6 (of 6 total)

You must be logged in to reply to this topic. Login to reply