SQL Server Agent Role Permissions

Sql Server 2008
I have a few users that need to be able to view history and execute ETL jobs (Job X, Y, Z). Let's call them
DomainName\UserA
DomainName\UserB
DomainName\UserC
I know I can grant the users SQLAgentUserRole on MSDB. The problem with that role is " ..
local jobs and job schedules." per
http://technet.microsoft.com/en-us/library/ms188283.aspx
So, I can create a job X, make DomainName\UserA as the owner, grant
SQLAgentUserRole on MSDB to UserA and he / she will be able to see and run the job.
The problem with that is UserB and UserC will need to be able to see and run the same
job X.
Need suggestions on how to fix / workaround the issue.
Thanks

Proxy Accounts have nothing to do with who starts a job.
Since the SQLAgentOperatorRole has extensive permission, what you probably want to do, is to create your own
custom SQL Agent role and assign just the permissions onto it, which you need.
Your problem is a little deeper though, too.
A job can in fact only be owned by one principal. What I would probably do, is to wrap the execution of the job (sp_start_job) into my own procedure which then will impersonate that certain single owner.
When I then grant those 3 principals permission to execute that custom "start_MY_job" procedure, preferably via a role of course, everything works.
If they need GUI-support, it's not possible directly I think. A trick might help: create 3 jobs which call the respective procedure and each be owned by that one principal.
Hope it makes sense to you.
Andreas Wolter (Blog |
Twitter)
MCM - Microsoft Certified Master SQL Server 2008
MCSM - Microsoft Certified Solutions Master Data Platform, SQL Server 2012
www.andreas-wolter.com |
www.SarpedonQualityLab.com

Similar Messages

  • Sql server agent roles and job's owner issue

    Hi,
    We have a tricky question about agent role and job owner. If I granted sqlagentoperatorrole to a windows account in a sql instance, the account will have permission to create a sql job, the job's owner is the account and he can edit the job. But we want
    to keep all agent jobs' owner as SA. But after I (have sysadmin role) changed the job's owner to SA, the windows account won't be able to edit the job any more. but I don't want to give sysadmin role to the account, Does anybody have solution for my issue?
    so recap my question,
    1. all jobs owners should be SA
    2. Allow some accounts without sysadmin permission can edit these jobs
    3. Which kid of permission shall I grant to these accounts?
    Thanks
    David

    Its not secessary to have SA for all the jobs, normally we avoid using SA...
    Depends if you want to have some sort of security measures in place. If not, doesn't matter much. As for the 'sa' topic, I change the name of that account or disable immediately after install. It practically eliminates that vector of attack.
    If you SQLAgentOperatorRole permissions then you can do the below... this is just a agent role so this comes under MSDB....
    http://msdn.microsoft.com/en-us/library/ms188283.aspx
    Also if you have sql SA access with doamin account or sql account then you can play with sql server completely without any issues, no harm in this...
    Agenet principals are scoped to msdb; make sure you are running the statement from msdb DB. For example:
    use [msdb]
    go
    -- The code where @userName is declared & set
    EXEC sp_addrolemember 'SQLAgentOperatorRole', @userName
    go
    If you still have problems let us know, and please include the error number and message in order to help us understand the nature of the fauilure.
    Best practice...
    http://technet.microsoft.com/en-us/library/cc966485.aspx
    Raju Rasagounder Sr MSSQL DBA

  • SSIS Package Runs OK Manually But Not From SQL Server Agent...Permissions?

    I have a problem where I have an SSIS package (SQL Server 2005) that won't run properly from SQL Server Agent, but it runs fine when kicked off manually from Integration Services -> Run Package or when run in debug from Visual Studio.
    The first step in the package checks for the existance of a file via a script task.  The script looks like this...
    Code Block
    Public Sub Main()
    Dim TaskResult As Integer
    Dim ImportFile As String = CStr(Dts.Variables("BaseDirectory").Value) + CStr(Dts.Variables("ImportDirectory").Value) + CStr(Dts.Variables("ImportFile").Value)
    If Dir(ImportFile) = "" Then
    Dts.TaskResult = Dts.Results.Failure
    Else
    Dts.TaskResult = Dts.Results.Success
    End If
    Return
    End Sub
    This script runs fine and the file is seen as expected when I run the package manually.  But as a step in a SQL Server Agent job, it doesn't see the file.
    The SQL Server Agent service is set to start up / log on as a Local System Account.  I've also tried setting up a credential / proxy (using an account that I know can see and even move / rename the file) to run the job as but that didn't seem to help.
    The package is being run from SQL Server (stored in MSDB) and is set to rely on SQL Server for sensitive information, so I don't think that's an issue; other packages are set up like this in terms of sensitive data and run fine.
    Any ideas why my script can't "see" the file I'm looking at when it's kicked off by SQL Server agent?  I've looked and looked...I can't seem to figure this out.  I would really appreciate any help you might be able to offer up.

    If the variables are fine, then I think it is very likely that this is security related. Since the Agent is running under the local system account, have you verified that the local account can access the file? When you tried the proxy account, are you positive that it was set up properly, and that the account had the permissions to read the file?
    Another thing to check - is this a local file or is on another computer? If it is on another computer, make sure you are using a UNC path and not a mapped drive.

  • SQL Server Agent Permissions for backing up on network share

    I'm new to managing SQL Server and I'm not too familiar on how to get this going. I'm trying to automate a T-SQL script that I got from here:(http://community.spiceworks.com/scripts/show/1511-back-up-all-databases-in-sql-instance-with-one-scr...).I have my SQL server agent enabled already but according to the notes in the script, I need to change my account that I have the SQL server agent to a network account. I'm not too sure how to do this. I'm running SQL Server 2012 (non express)My server is a standalone server and I need to backup the SQL database to a NAS on the network. I created a user account on the NAS already. I tried to run the Maintenance Wizard and do a backup that way but when I try to browse for the network share that's mounted, I don't see it. I know that the account that's running under the SQL server agent doesn't...
    This topic first appeared in the Spiceworks Community

    What you might have missed this past week from the Spiceworks Community, in brief.When JJoyner1985asked if he was"expecting too much from his help desk?" the Spiceworks Community got to talking over the finer points of what a help desk should do and how technically proficient and proactive help desk techs should be. The community then discussed some fresh security problems, the finer points (and rationale) behind free software, how to start an IT career after 30, Lockheed Martin's new open source security tool, Shadow IT, and how different organizations get their users to submit tickets.Am I expecting too much from my help desk?
    Careers– Following the motif ofdiscussions concerning what a sysadmin should know, I want to get some idea from the community regarding how much you would expect your help desk staff to know and do. My help desk...

  • Reporting Services 2012 for SharePoint and SQL Server Agent "Subscriptions and Alerts"

    After installing Reporting Services for SharePoint (Denali) in my test farm, I'm trying to configure the "SQL Server Agent" access for Reporting Services.  From Central Admin I'm going to the Reporting Service applicaiton configuration screen and selecting
    "Provision Subscriptions and Alerts".  I've tried both options on this screen.  I've manually executed the "download sql script" in SQL Server, as well as entering a user with SQL sys admin rights on the SQL server into the login fields on the screen. 
    The role and permissions have been created for the application pool service account, but Reporting Services is still trying to connect with the annonymous login because I'm getting the following alert each time I open the "Provision Subscriptions and Alerts"
    screen:
    Login failed for user 'NT AUTHORITY\ANONYMOUS LOGON'
    The "status" on the screen still shows "SQL Server Agent State cannot be determined".  Has anyone else seen this? 
    Thanks!!

    Thanks for your reply!
    1) Looks like the new Reporting Services does not run as a Windows Service so it's not listed in the "Configure Service Accounts" pulldown.  As a result, I don't see how to set the service account.  It's only assigned to an application pool. 
    I installed it into an existing application pool and that application pool "is" in the list and has a domain service account already assigned.
    2) Which users need to be in here in order to configure the "Provision Subscriptions and Alerts" screen?  I already have the farm admin account which is the account I use when running Central Admin.
    3) As mentioned in #1, I've installed Reporting Services into an existing application pool with other service apps.
    4) This link is for Reporting Services 2008 R2 which is very different install process.  But I did follow the SQL Server Reporting Services 2012 RC0 installation instructions and the Reporting Services is functioning correctly with no errors. 
    I'm just not able to configure the sceduling the alerting with interfaces with the SQL Server Agent.
    Thanks!

  • How do I find out if Sql server Agent's login has rights to a DB?

    How do I find out if the SQL server Agent's login has rights to the target DB, that is the DB on which I will be executing a query ? Is there a query for this ?
    Thanks.

    The job will run with the permissions of owner of the job and only be modified by the owner
    or sysadmin role members.
    you need get the owner of the job and for example 'ABC' is the owner of the job then pass value in the below query 
    DECLARE @DBuser_sql VARCHAR(4000) 
    DECLARE @DBuser_table TABLE (DBName VARCHAR(200), UserName VARCHAR(250), LoginType VARCHAR(500), AssociatedRole VARCHAR(200)) 
    SET @DBuser_sql='
    SELECT ''?'' AS DBName,a.name AS Name,
    a.type_desc AS LoginType,
    USER_NAME(b.role_principal_id) AS AssociatedRole 
    FROM ?.sys.database_principals a 
    LEFT OUTER JOIN ?.sys.database_role_members b ON a.principal_id=b.member_principal_id 
    WHERE a.sid NOT IN (0x01,0x00) AND a.sid IS NOT NULL AND a.type NOT IN (''C'') 
    AND a.is_fixed_role <> 1 AND a.name NOT LIKE ''##%'' AND 
    ''?'' NOT IN (''master'',''msdb'',''model'',''tempdb'') 
    ORDER BY Name'
    INSERT @DBuser_table 
    EXEC sp_MSforeachdb @command1=@dbuser_sql 
    SELECT * FROM @DBuser_table ORDER BY DBName 
    --SELECT * FROM @DBuser_table where username='ABC' ORDER BY DBName 
    Useful links
    http://www.mssqltips.com/sqlservertip/2317/running-sql-server-agent-with-a-least-privilege-service-account/
    http://www.brentozar.com/blitz/jobs-owned-by-user-accounts/
    -Prashanth

  • SQL Server Agent and OpenDataSource failing

    I have a stored procedure that is using an OpenDataSource query to export data from SQL Server into a excel file for download. I’ve installed the “Microsoft Access database engine 2010”, and can see it listed in SQL Server Management Studio under Server
    Objects > Linked Servers > Providers > Microsoft.ACE.OLEDB.12.0.
    If I manually run the stored procedure (when logged in as the OS’s administrator), the stored procedure runs fine, and the export is completed successfully.
    The stored procedure is set up to be run periodically by a SQL Server Agent job.
    However, if I start the SQL Server Agent job (when logged in as the OS’s administrator), the job fails with the following error message:
    Executed as user: NT SERVICE\SQLSERVERAGENT. Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)". [SQLSTATE 42000] (Error 7303) OLE DB provider "Microsoft.ACE.OLEDB.12.0"
    for linked server "(null)" returned message "Unspecified error". [SQLSTATE 01000] (Error 7412). The step failed.
    I have given the “NT SERVICE\SQLSERVERAGENT” user full control permissions on the destination directory where the export file resides (note that it starts out as an empty file just with the column headers defined).
    I’ve applied the following configuration settings to SQL Server:
    sp_configure 'show advanced options', 1;
    RECONFIGURE;
    GO
    sp_configure 'Ad Hoc Distributed Queries', 1;
    RECONFIGURE;
    GO
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
    GO
    EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
    GO
    What am I missing? Can anyone shed any light on what might be causing the failure?
    This is running on SQL Server Web Edition 2012 on Windows Server 2012 Standard.
    Thanks!

    Hi JonathanT1,
    First, I want to inform that, if SQL Server Agent log on account is “NT SERVICE\SQLSERVERAGENT”, we need to grant read and write permission to the destination folder to this account (you have done). From the following message:
    Executed as user: NT SERVICE\SQLSERVERAGENT
    It seems that you filled “NT SERVICE\SQLSERVERAGENT” in job step properties, “Run as user” option. I suggest changing it to another account who is in SQLAgentUserRole, SQLAgentReaderRole or SQLAgentOperatorRole. For more detail information, you can refer
    to the following link:
    Create a Transact-SQL Job Step
    http://technet.microsoft.com/en-us/library/ms187910.aspx
    SQL Server Agent Fixed Database Roles
    http://technet.microsoft.com/en-us/library/ms188283.aspx
    Allen Li
    TechNet Community Support

  • How to stop SQL Server Agent Job if Stored Procedure returns value 0

    I have SQL Server 2012 SSIS.
    I have 2 SSIS packages.
    I have created SQL Server Agent Job for running packages.
    I have created steps. If first step have run succesfully next step is run.
    I have need to add new logic.
    I have validation stored procedure, which validate DB table values and returns 1 or 0.
    I would like to create logic where first of all this SP is runned. Return value of SP determines if steps are run or not.
    I was thinking to use Execute SQL Task for running SP.
    If value 1 is returned, then run rest of Tasks is run.
    If value 0 is returned, what should I do so that Job is stopped? I need assistance! 
    I want current step to stop never moved to next step.
    Is there any SSIS tasks, which can stop the Job?
    Or should I make Step for running validation SP?
    How to do so that if value 0 is returned stop Job.
    Kenny_I

    Please refer the below link:
    http://technet.microsoft.com/en-us/library/aa260308(v=sql.80).aspx
    Please read Remarks carefully!!!
    Remarks
    If a job is currently executing a step of type CmdExec, the process being run (for example, MyProgram.exe) is forced to end prematurely. Premature ending can result in unpredictable behavior such as files in use by the process being held open. Consequently,
    sp_stop_job should be used only in extreme circumstances if the job contains steps of type CmdExec.
    Permissions
    Execute permissions default to the public role in the
    msdb database. A user who can execute this procedure and is a member of the
    sysadmin fixed role can stop any job. A user who is not a member of the
    sysadmin role can use sp_stop_job to stop only the jobs he/she owns.
    When sp_stop_job is invoked by a user who is a member of the
    sysadmin fixed server role, sp_stop_job will be executed under the security context in which the SQL Server service is running. When the user is not a member of the
    sysadmin group, sp_stop_job will impersonate the SQL Server Agent proxy account, which is specified using
    xp_sqlagent_proxy_account. If the proxy account is not available,
    sp_stop_job will fail. This is only true for Microsoft® Windows® NT 4.0 and Windows 2000. On Windows 9.x, there is no impersonation and
    sp_stop_job is always executed under the security context of the Windows 9.x user who started SQL Server.

  • Can't launch executable from SQL Server Agent Job

    I'm trying to launch an .exe from SQL Server Agent Job and basically nothing happens. I created a job, with 1 step, type is Operating System (CmdExec), run as sql agent service account, and in the command box I typed "start notepad" (no quotes). The job owner is set to administrator. I manually start the job, it processes successfully yet notepad does not launch. I've tried with other .exe's and result is the same. Any advice? Thanks!

    I tried several things and not just with notepad, I tried a couple other small executables. I've tried:
    c:\notepad       --(I copied it to c:\ thinking it maybe it's not finding the file.)
    c:\notepad.exe
    notepad.exe
    start notepad
    start notepad.exe
    and also launching it from a batch file.
    If I use just notepad the job hangs saying it's executing and I have to stop it. If I use start notepad it comes back as executed but actually nothing happens, ie, notepad does not launch. I've tried different security settings within SQL Server (ie assigning all available default roles to the login at the same time and individually one at a time) with identical results. SQL Server is loging in with local administrator priviledges and so is SQL Server Agent. My settings are the default installation settings (for Windows Server 2003 and SQL Server 2005) except that I read the BOL page "Configuring SQL Server Agent" which indicates the permissions needed for the following:
    Adjust memory quotas for a process
    Act as part of the operating system
    Bypass traverse checking
    Log on as a batch job
    Log on as a service
    Replace a process level token
    And they have been set. Still the same. BTW, I get the same result when trying to launch the file using xp_cmdshell with all the variations, and the proxy account for xp_cmdshell has been set to a login with administrator priviledges....
    I think it's some security setting in Windows Server, if only because I think I've tried all the settings within SQL Server...
    BTW, also, nothing is setup for Proxies under the SQL Server Agent node, but I don't think I should need to if I'm using the administrator level login...

  • Unable to start SQL server agent service

    hi,
    We have 2 Node SQL Cluster that was working fine. Then We migrated the Linux DNS to Windows DNS successfully.Now restarted the SQL Server after it when we try to start the SQL Server Agent service its says the below msg while machine name and cluster
    entries are in windows dns and resolving the IP to name and name to IP
    Error msg: The MSSQLSERVER service on Local Computer started and then stopped.  Some services stop automatically if they have no work to do, for example, the Performance Logs and Alerts service." error message.
    But whenever we set the Linux DNS Server ip in SQL Servers then it successfully starts the service. Now i want to know why its happening and what are the requirements or DNS entries/SPN which we missing when we migrated the linux DNS to windows
    dns
    Sagar

    I was experiencing this issue or one just like it on one of our SQL clusters (SQL Server 2008 R2, two node).
    The fix for us was the database Security Login for: NT SERVICE\SQLAgent$<instancename>  was missing.  The actual service account assigned to the SQL Agent service was a valid domain account and we had the credentials correct in the service
    configuration, so no changes were needed there.
    Using SQL Server Management Studio we manually added this BUILT IN account ( NT SERVICE\SQLAgent$<instancename> ) to the instance, and then assigned it user role = sysadmin (to go along with the default role = public).
    Once this was done, we tried to restart the clustered SQL Agent service and it started and remained started.
    Hope this helps someone, we spent over a day pouring over the installation trying to find the cause.
    This worked for me, thanks:-)

  • Unable to view SQL Server Agent while logged in as user

    Hello Everyone,
    I have granted SQLAgentUserRole permission to one of the user and using enterprise edition of SSMS. still user is not able to view SQL Server Agent. Any help will be greatly appriciated.

    There is no Enterprise Edition of SSMS. There is SSMS Basic and SSMS Complete. Prior to 2012 sp1, only SSMS Basic were available with Express Edition - but as of 2012 sp1 Expredd also offers SSMS Complete. SSMS Complete is selected bu default when you install
    SSMS (unless you are prior to 2012 sp1 and are using Express, of course).
    However, even SSMS Basic *should* show Agent assuming you have permissions for that. This is hearsay, but from trusted sources. Here is what to do:
    Check what is installed for the machine from where you are running SSMS. You can do that using SQL Server Installation Center - see this blog post: http://sqlblog.com/blogs/tibor_karaszi/archive/2011/02/10/what-does-this-express-edition-look-like-anyhow.aspx
     (towards the end).
    On that machine try both this problematic account as well as an account which is sysadmin. Does the sysadmin account see Agent? If so, you know permissions aren't granted properly. If not, then you know the tool is the problme.
    Also try the problematic account from a machine where you know you see Agent normally. Again, this will help you assess whether the problem is the tool (SSMS) or permissions for the account.
    Tibor Karaszi, SQL Server MVP |
    web | blog

  • SQL Server Agent Failed to decrypt protected XML node

    I'm getting the below error when trying to run sql server agent to run an SSIS package. I've updated folder security to allow sql server agent access, but cannot get the package to execute within SQL Management Studio. The package runs find in SSIS. 
    11.0.2100.60 for 64-bit  Copyright (C) Microsoft Corporation. All rights reserved.    Started:  12:12:00 PM  Error: 2014-11-30 12:12:02.65     Code: 0xC0016016     Source: LoadStgProspects      Description:
    Failed to decrypt protected XML node "DTS:Password" with error 0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that
    the correct key is available.  End Error  Error: 2014-11-30 12:12:03.88     Code: 0xC0016016     Source: LoadStgProspects      Description: Failed to decrypt protected XML node "DTS:Password" with error
    0x8009000B "Key not valid for use in specified state.". You may not be authorized to access this information. This error occurs when there is a cryptographic error. Verify that the correct key is available.  End Error  Error: 2014-11-30
    12:12:04.74     Code: 0xC0209303     Source: LoadStgProspects Connection manager "Excel Connection Manager"     Description: The requested OLE DB provider Microsoft.Jet.OLEDB.4.0 is not registered. If the 64-bit driver
    is not installed<c/> run the package in 32-bit mode. Error code: 0x00000000.  An OLE DB record is available.  Source: "Microsoft OLE DB Service Components"  Hresult: 0x80040154  Description: "Class not registered".
     End Error  Error: 2014-11-30 12:12:04.74     Code: 0xC020801C     Source: Load prospect files Prospect xls [231]     Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection
    method call to the connection manager "Excel Connection Manager" failed with error code 0xC0209303.  There may be error messages posted before this with more information on why the AcquireConnection method call failed.  End Error  Error:
    2014-11-30 12:12:04.74     Code: 0xC0047017     Source: Load prospect files SSIS.Pipeline     Description: Prospect xls failed validation and returned error code 0xC020801C.  End Error  Error: 2014-11-30 12:12:04.74
        Code: 0xC004700C     Source: Load prospect files SSIS.Pipeline     Description: One or more component failed validation.  End Error  Error: 2014-11-30 12:12:04.74     Code: 0xC0024107     Source:
    Load prospect files      Description: There were errors during task validation.  End Error  Error: 2014-11-30 12:12:04.74     Code: 0xC00220DE     Source: LoadStgProspects      Description: Error
    0xC0012050 while loading package file "C:\Users\Jim\Documents\Visual Studio 2010\Projects\SSISTraining\SSISTraining\LoadStgProspects.dtsx". Package failed validation from the ExecutePackage task. The package cannot run.  .  End Error  DTExec:
    The package execution returned DTSER_FAILURE (1).  Started:  12:12:00 PM  Finished: 12:12:04 PM  Elapsed:  4.337 seconds.  The package execution failed.  The step failed.,00:00:04,0,0,,,,0

    Hi selfdestruct80,
    According to your description, you created SSIS package and it works fine. But you got the error message when the SSIS package was called from a SQL Server Agent job.
    According to my knowledge, the package may not run in the following scenarios:
    The current user cannot decrypt secrets from the package.
    A SQL Server connection that uses integrated security fails because the current user does not have the required permissions.
    File access fails because the current user does not have the required permissions to write to the file share that the connection manager accesses.
    A registry-based SSIS package configuration uses the HKEY_CURRENT_USER registry keys. The HKEY_CURRENT_USER registry keys are user-specific.
    A task or a connection manager requires that the current user account has correct permissions.
    According to the error message, the SSIS Package ProtectionLevel property to EncryptSensitiveWithPassword as ArthurZ mentioned. To solve the problem, you need to go to Command Line tab, manually specify the paassword in SQL Agent Job with the command like below:
    /FILE "\"C:\Users\xxxx\Documents\SQL Server Management Studio\SSIS\Package.dtsx\"" /DECRYPT somepassword /CHECKPOINTING OFF /REPORTING E
    If you have any more questions, please feel free to ask.
    Thanks,
    Wendy Fu
    Wendy Fu
    TechNet Community Support

  • SSIS package is failing when using SQL server agent

    I am trying to execute an SSIS package through an SQL server agent and receiving the following error:
    Message
    Executed as user: serv-syst\SYSTEM. Microsoft (R) SQL Server Execute Package Utility  Version 10.50.1600.1 for 32-bit  Copyright (C) Microsoft Corporation 2010. All rights reserved.    Started:  1:56:53 PM  Error: 2014-04-21
    13:56:54.81     Code: 0xC0202009     Source: PACKAGEWMG Connection manager "DestinationConnectionOLEDB"     Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred.
    Error code: 0x80040E4D.  An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 11.0"  Hresult: 0x80040E4D  Description: "Login failed for user 'hsnzha'.".  End Error  Error: 2014-04-21
    13:56:54.82     Code: 0xC00291EC     Source: Drop table(s) SQL Task 1 Execute SQL Task     Description: Failed to acquire connection "DestinationConnectionOLEDB". Connection may not be configured
    correctly or you may not have the right permissions on this connection.  End Error  Error: 2014-04-21 13:56:54.82     Code: 0xC0202009     Source: PACKAGEWMG Connection manager "DestinationConnectionOLEDB"    
    Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80040E4D.  An OLE DB record is available.  Source: "Microsoft SQL Server Native Client 11.0"  Hresult: 0x80040E4D  Description: "Login
    failed for user 'hsnzha'.".  End Error  Error: 2014-04-21 13:56:54.82     Code: 0xC00291EC     Source: Preparation SQL Task 1 Execute SQL Task     Description: Failed to acquire connection
    "DestinationConnectionOLEDB". Connection may not be configured correctly or you may not have the right permissions on this connection.  End Error  DTExec: The package execution returned DTSER_FAILURE (1).  Started:  1:56:53 PM 
    Finished: 1:56:54 PM  Elapsed:  0.844 seconds.  The package execution failed.  The step failed.
    My SSIS package retrieves a excel file and saves the vales into an SQL table. When I run the package by itself in my server it works fine but when it's called from a SQL agent, it fails with the above error. Please help me resolve it.

    That's the issue. If it's a SQL login the password cannot be retrieved by account executing the package from the job which is why login fails. In that case best thing would be set password in job properties or pass it using configuration created in the package
    See
     HTTP://blogs.msdn.com/b/runeetv/archive/2011/12/22/ssis-package-using-sql-authentication-and-dontsavesensitive-as-protectionlevel.aspx
    Please Mark This As Answer if it helps to solve the issue Visakh ---------------------------- http://visakhm.blogspot.com/ https://www.facebook.com/VmBlogs
    My package is saved with ServerStorage which appears under \\server\Stored Packages\MSDB\PACKAGE and when I run it, it works fine.
    There is a new error message that I get now after following the steps from the link...
    Message
    Microsoft (R) SQL Server Execute Package Utility
    Version 10.50.1600.1 for 32-bit
    Copyright (C) Microsoft Corporation 2010. All rights reserved.
    Started:  3:34:22 PM
    Error: 2014-04-21 15:34:23.82
       Code: 0xC0202009
       Source: PACKAGEWMG Connection manager "SourceConnectionExcel"
       Description: SSIS Error Code DTS_E_OLEDBERROR.  An OLE DB error has occurred. Error code: 0x80004005.
    An OLE DB record is available.  Source: "Microsoft Office Access Database Engine"  Hresult: 0x80004005  Description: "Unexpected error from external database driver (????????).".
    End Error
    Error: 2014-04-21 15:34:23.82
       Code: 0xC020801C
       Source: Data Flow Task 1 Source - 'Contact Center$' [1]
       Description: SSIS Error Code DTS_E_CANNOTACQUIRECONNECTIONFROMCONNECTIONMANAGER.  The AcquireConnection method call to the connection manager "SourceConnectionExcel" failed with error code 0xC0202009.  There may be error
    messages posted before this with more information on why the AcquireConnection method call failed.
    End Error
    Error: 2014-04-21 15:34:23.82
       Code: 0xC0047017
       Source: Data Flow Task 1 SSIS.Pipeline
       Description: component "Source - 'Contact Center$'" (1) failed validation and returned error code 0xC020801C.
    End Error
    Error: 2014-04-21 15:34:23.82
       Code: 0xC004700C
       Source: Data Flow Task 1 SSIS.Pipeline
       Description: One or more component failed validation.
    End Error
    Error: 2014-04-21 15:34:23.82
       Code: 0xC0024107
       Source: Data Flow Task 1
       Description: There were errors during task validation.
    End Error
    DTExec: The package execution returned DTSER_FAILURE (1).
    Started:  3:34:22 PM
    Finished: 3:34:23 PM
    Elapsed:  1.25 seconds

  • SSIS Package Fails when Scheduled as a SQL Server Agent Job

    I have an SSIS package that runs without any problems when executed through BIDS.
    However, when I schedule the SSIS as an Agent job, it fails completely or part way through. When it partially runs, the part that it is failing on is a Script Task that moves the source data file to an archive folder (on the same server).
    I have tried using my domain account as the owner of the job, then the job fails straight off and I get an error:
    Unable to determine if the owner (Domain\MyID) of job JobName has server access (reason: Could not obtain information about Windows NT group/user 'Domain\MyID'
    If I change the owner to the 'sa' account , then the job partially runs, but then fails because 'sa' is a SQL account and does not have access to the filesystem.
    I have managed to get it to work by using the SQL2008_Local account and granting modify permissions to the affected folders.
    My question is - what is the advised way of doing this?
    Thanks
    Gary

    Hi Garyv.King,
    When you see a SSIS package fails running in a SQL Agent job, you need to first consider the following conditions:
    1. The user account that is used to run the package under SQL Server Agent differs from the original package author.
    2. The user account does not have the required permissions to make connections or to access resources outside the SSIS package.
    For more detailed information about the issue, please following this KB article:
    An SSIS package does not run when you call the SSIS package from a SQL Server Agent job step
    http://support.microsoft.com/kb/918760 
    You can check SQL Server Agent’s activity logs, Windows Event logs and SSIS logs to get more clues. Also the tool Process Monitor is helpful to track the cause of registry or file access related issues.
    The following 4 issues are common encountered in the SSIS forum.
    1. The package's Protection Level is set to EncryptSensitiveWithUserKey but your SQL Server Agent service account is different from the SSIS package creator.
    2. Data source connection issue.
    3. File or registry access permission issue.
    4. No 64-bit driver issue.
    For more information about it, please see:
    How do I troubleshoot SSIS packages failed execution in a SQL Agent job:
    http://social.technet.microsoft.com/Forums/en-US/sqlintegrationservices/thread/e13c137c-1535-4475-8c2f-c7e6e7d125fc 
    Thanks,
    Eileen

  • SQL SERVER AGENT JOB ERROR - SSIS PACKAGE

    Hi , 
    I have a SQL server agent job which runs SSIS package as the daily job. The SSIS package contains multiple child package. Its a master package which calls other SSIS package. The master package calls 23 SSIS packages, few of the packages runs in parallel.
    I am getting the below 2 different errors more frequently. It fails only in the production server, I scheduled the job in UAT server, it did not fail. Also when we run the master package with out sql agent job, it did not fail. 
    Error 1 :
    R6025  - pure virtual function call.  The return value was unknown.  The process exit code was 255.  The step failed.
    Error 2 : The step did not generate any output.  The return value was unknown.  The process exit code was -1073741819.  The step failed.
    We tried browsing for the answers ,no luck. It failing in live , so we need to run the package manually in live server every time. 
    Please help me to resolve this issue. Thanks in advance.
    Regards, 
    Dhivya Sivakumar

    Hi Vijeth, 
    Thanks for your reply. 
    1) Run the Package manually and check whether it runs successfully.  -
    No Failures. Package completed succesfully
    2) If Step 1 is successful,
    a) Point the same package to the UAT database and run it and check whether it runs successfully or not. -
    We tried to schedule the package almost for 1 month. No failures in UAT. 
    b) In UAT database, point to the Production database and run the package. - I am not sure, if i can do this.I will try and let you know the result.
         These steps will help us identify whether the problems lies within the package or the Environment. 
    3) Run the Package manually in production Environment using dtexec utilily. -
    No Failures. Success.
    4) Check the ID used to run the SQL Agent job and modify to an account with elevated permissions or GRANT more permissions to the existing ID. -
    The account used currently is having all the privileges. Its the most powerful user in live DB. 
    Regards, 
    Dhivya S

Maybe you are looking for

  • Top n Percent Equivalent

    Hello All, I would like to know what is the equivalent of Top n Percent in Oracle sql 11g. Here is my requirement: I have to find stores contributing top 20% of sales: Store Sales Percetage ABC 200 (200/380)*100=52% XYZ 100 (100/380)*100=26% PQR 50 (

  • Payment Approval with notification SDK

    Hi, I need to create with SDK a payment approval procedure, when the user using a date filter get all the payments check its and click ok. When this step is done. I need to send a notification to the user added in the approval procedures, how do I? T

  • Use of bind variable in repository

    All, Our customer has a requirement that they need This year sales Vs Last year Sales by passing the year as a prompt. I can not use BI built in function to get Last year start or this year start date as our calendar dates are not standard. So i have

  • OBIEE Performance with lakhs of records

    Hi, I have 4 laks records in my OBI Report. The default no of records for display is 25 in OBI. When I try to expand it to all pages, the page gets struck and it is not displaying all the pages. It does not respond and I need to manually kill he proc

  • I have downloaded and installed flash at least 8 times and it still doesn't work

    i have downloaded and installed flash at least 8 times and it still doesn't work