July 2, 2008 at 10:58 am
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?
July 3, 2008 at 2:21 am
I have encountered the same error. Have you resolved the problem yet ?
July 3, 2008 at 3:38 am
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
September 5, 2008 at 9:10 am
Same problem 🙁
September 5, 2008 at 3:19 pm
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
September 6, 2008 at 12:03 am
Thanks for ur answer. I will try it again.
August 19, 2011 at 1:08 pm
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