SQL Agent not kicking off an SSIS package - sql-server

I have a server that has a SQL Agent job setup to run a two part datawarehouse build and Analysis Services cube build. The job ran successfully until there was a problem with Management Studio and .NET framework 2.0 SP1 was re-installed. The first step in the SQL Agent job is unable to kick off the SSIS package. If the Agent job is started at step 2 it will run.
SQL agent service has been setup to use the Administrator account which is a domainh admin account and a sysadmin in the SQL Server security. The steps to troubleshoot SSIS package execution were followed from the link below.
http://msdn.microsoft.com/en-us/library/dd440760.aspx
The protection level has been set to DontSaveSensitive. The SQL Agent account has rights to run dtexec.exe and also setting up a proxy account did not resolve the issue. ZThe SSIS package will run if started manually from Management studio.
Redeploying the package and setting up the Agent job again does not resolve the issue and the package also throws the same error if run from the file system as opposed to the msdb location.
The error that the SQL Agent is throwing up is access denied by user domainname\sqlagentaccount.
Any further assistance on this issue would be greatfully appreciated.

Sounds like you need to poke around in dcomcnfg.
I forget the exact details but you need to set/fix some rights.
MS KB 2000474 found using a general search

I guess the account you use for Agent does not have enough permissions on the file system. Check the folders that were modified by the re-installation of .Net framework. If I remember correct the account should have access to the .net framework folders.

Related

Bare Bones Setup to Run SSIS Package

I work with Microsoft Access 2016 with a SQL Server 2008 R2 backend. I have used SQL Server Management Studio to create some SSIS package for quick copying of data (right-click DB -> Tasks -> Import/Export).
I was able to create a button in Access to kick off the SSIS package successfully using VBA. I use the Shell function to run the following command:
"C:\Program Files (x86)\Microsoft SQL Server\140\DTS\Binn\DTExec.exe" /F "\\MyPath\MySSISPackage.dtsx". This works on my machine because I'm running my particular instance of DTExec.exe to execute the SSIS package.
I need to set up users' Win10 64-bit computers now so that this process will work for them as well. I don't know if DTExec was installed when I installed SSMS or my local SQL Server Express Edition DB, but the user doesn't need either of these programs. What is the bare minimum I need to install on the users' computers for it to work for them also?
I've done a lot of googling but either the scenario didn't quite fit mine, or I just wasn't understanding what they were talking about. The users will have Microsoft Access only as a start.
Links to download locations would be extra appreciated!
Thanks!
For running SSIS packages in a production environment you must install and license SQL Server. A user who only has Microsoft Access installed cannot run SSIS packages.
You can install and run SSIS packages on your SQL Server (Standard Edition or higher), but not on your clients' PCs.
Once you have credentials all sorted out with DBA team. At min you will need read (select permission) on desired database(s) . Build your ssis in VS2017 locally and test. It will run great I'm sure. And when your ready to deploy you can use steps below.
Steps below outline package deployment mode.

SQL Server Agent fails some SSIS jobs

I've been tasked with deploying a handful of SSIS packages on Microsoft SQL Server 2012 Enterprise 64-bit (11.0.6020.0) running on Windows Server 2012 R2.
The packages run perfectly when run from SQL Management Studio by right-clicking the package and clicking execute with the proper parameters.
However, when I schedule them to run under the SQL Server Agent, some of them fail. I have not been able to identify any pattern that distinguishes the failing packages from the working packages.
All of the packages are run using a, probably unconventional, approach which involves creating the job step in the job as a Operating system (CmdExec) step rather than a SQL Server Integration Services Package step. This is because the packages depend on access to a particular SMB share and must have credentials provided first to access this share. The CmdExec step calls a wrapper batch file and passes the package name and the environment reference for dtexec to run the package.
Here's the file bat file:
set ETL_PACKAGE=%1
set ETL_ENV_REF=%2
net use \\remote-share.some-domain.local\dropfolder\in /user:ssisagent mypassword
dtexec /Envreference %ETL_ENV_REF% /ISSERVER \SSISDB\%ETL_PACKAGE%
if "%errorlevel%"=="1" (
exit /b %errorlevel%
)
When the agent runs these jobs by rightclicking the job and selecting "Start Job at Step..." the job is started succesfully, but when you pull an execution report it fails with this error:
Message Source Name: Transact-SQL stored procedure
Operation is not valid due to the current state of the object.;
at Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ISServerExecutionEvents.LoadPackage(PackageItem item)
at Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ProjectOperator.StartPackage()
at Microsoft.SqlServer.IntegrationServices.Server.ISServerExec.ProjectOperator.PerformOperation()
I would appreciate ANY idea about what could possibly cause this error or how I can troubleshoot it to narrow down the causes.
I have tried setting up a proxy account using my own admininstrator credentials to rule out possible permission issues, but it doesn't change a thing. I have checked permissions on the SSIS environment used, but that doesn't change anything.
The packages in question interact with DB2, MS SQL and various fileshares with CSV/XML files.

Error Execution Package SSIS from SQL Server Agent, but runs from catalog

I have an SSIS Package deployed in the Integration Service Catalogs of Sql Server 2014. When I run the package from the catalogs all works perfectly, the sql server session works with an authentication windows. I have created a job in Agent Sql Server to run this package, I am the owner of the job and I have admin rights on Sql Server, the step that runs the package is run as a service account SQL Server Agent. But when running the job it crashes with the following error:
Load FTP file Qc: Error: The directory is not specified in the User Connection Manager::DownloadDirectoryQc.
But it is beautiful and well otherwise it would not work catalog. Would anyone have a reason for what is causing this problem?
You may need to create a configuration file that the job can use to find connection manager information, such as the download directory path. This information may be available in your environment when you run from the catalog in SSMS, but isn't available to the job when it runs. Configuration files help with this problem. (Also, see discussion here).

SQL Server 2014 SSIS and SSRS access

My company has a database located on a server. On that same server there is an installation of SQL Server. I plan on installing SQL Server on my workstation (we have the appropriate license) so I can access the data for reporting purposes. I will need access to SSRS and SSIS on my workstation to help with this process. Will this be issue for me? Will I be able to install SSRS and SSIS or will it only be accessible on the Server's installation of SQL Server?
You can install SSRS and SSIS in your workstation and use the database in your company server as datasource.
Keep in mind your workstation must have access to your company network and your Windows credentials / Sql Server login should have the right permission level in order to connect to the SQL SERVER instance.
I assume you want to install SSIS to design some kind of ETL or data integration process. I'd recommend you only use your workstation to design/develop/test SSIS packages then deploy those packages to your server and run them from it.
The same recommendation if you want to use your workstation as a report server. If you need to delivery reporting services to a large number of users it is possible your machine cannot handle it.
Let me know if this helps.
My company has a database located on a server. On that same server there is an installation of SQL Server. I plan on installing SQL Server on my workstation (we have the appropriate license) so I can access the data for reporting purposes.
No need to install SQL Server Database Server on your workstation to access the data for reporting. You just need to install SSRS and SSIS locally on your workstation if you plan to work on reports and create your ETL packages locally.
I will need access to SSRS and SSIS on my workstation to help with this process. Will this be issue for me?
If you are using a local account to run SSIS/SSRS on your workstation you may run into some permission issues, especially for windows pass-through authentication when accessing data sources - unless you plan to store static data source credentials. You could run the SSRS/SSIS as domain service accounts that have "Write Public Information" permissions to enable Kerberos Authentication, which eliminate the double-hop issues you may potentially face
As pointed out by alejandro you will also need to make sure these service accounts have appropriate permissions set on the remote SQL Server Database Instance
Will I be able to install SSRS and SSIS or will it only be accessible on the Server's installation of SQL Server?
You should be able to install SSRS/SSIS on your workstation, and it doesnt have to be installed on SQL Server
Thanks again for your help. I have the necessary permission to the database and have already started building some queries via SQL Express.
The IT department is going to add a developer server with an installation of SQL Server. We will test the packages on this server and once we are satisfied with the results we will deploy them to the server that houses the databases. I'm assuming they will add the necessary permissions to do so, but we will see. I also installed SQL Express on my workstation and can at least test the TSQL queries on my workstation, and I believe SSRS, before hand.
As a side question:
If there are multiple installations of SQL Server on different workstations/servers, will the server that houses the database have master administrative rights versus the other installations. I ask because each time I install SQL Server I add the admin account, and to me it seems that each installation could have administrative rights. Is that right?

Why does my SSIS package fail with filesystem permission error when run from the Integration Services Catalog

I have an SSIS package that accesses a folder on a network share.
If I run this package as part of a SQL Agent Job, it succeeds.
If I run this package directly from the SSIS Integration Catalog (Right Click and execute) on my development PC, it fails with a permission error .
If I run this package directly from the SSIS Integration Catalog (Right Click and execute) on the server hosting the SQL instance, it works.
All users's involved in this process have access to the folder (my username, the user setup to run the SSIS service and the SQL Agent service). I know this for sure because I can accsess the folders logged in under any of these users.
Any ideas why this would be?
What baffles me is that it works if you run it from the server hosting the SQL instance, but not from my local PC (when logged in under the same user)!
We've gotten to the point that when we want run certain packages that access the file system, we create an SQL agent job to run it. It's not ideal.
Adding the NETWORK SERVICE user account to the folder fixed the issue. I'm not entirely sure why as it runs under the context of the user executing the package, but it fixed the issue.
SQL Server Management Studio does not provide execute permission on Integration Service catalog using 'Sql server Authentication'. So, you can not execute any package from your machine.
you are able to run your package on the server machine because SQL server instance is installed on that particular machine and you are connecting SQL server by 'Windows Authentication'.
I hope this could help you!

Resources