Home / Databases / SQL Server

DatabasesRunbookIntermediate

Running an SSIS package from a SQL Agent job as a specific Windows account: credential, proxy and step

Set up an SSIS job step that runs under a dedicated domain account instead of the Agent service account. Create the credential and proxy, grant the SSIS subsystem, give the right people use of the proxy, configure the step and troubleshoot the usual failures.

Deepak Bhardwaj3 min read

Applies toSQL Server 2016–2025 with Integration Services (SSIS catalog / SSISDB)

Why a proxy

By default, SSIS job steps run as the SQL Server Agent service account. That account then needs access to every file share, FTP folder and remote database every package touches. A proxy lets each package run as an account with only the rights it needs.

1. Create the Windows account

Ask AD admins for a domain account, for example CONTOSO\svc-ssis-finance. Grant it:

  • Access to the file shares and folders the package uses.
  • Logins/permissions on the databases the package connects to with Windows authentication.
  • Log on as a batch job on the SQL Server host. Check this; GPOs often restrict it.

2. Credential and proxy

USE master;
CREATE CREDENTIAL cred_ssis_finance
  WITH IDENTITY = N'CONTOSO\svc-ssis-finance', SECRET = N'<password>';

USE msdb;
EXEC dbo.sp_add_proxy @proxy_name = N'SSIS Finance', @credential_name = N'cred_ssis_finance',
     @enabled = 1, @description = N'Runs Finance SSIS packages';

EXEC dbo.sp_grant_proxy_to_subsystem @proxy_name = N'SSIS Finance', @subsystem_name = N'SSIS';

3. Who can use the proxy

sysadmins can use any proxy. Anyone else who owns or edits the job must be granted it:

EXEC msdb.dbo.sp_grant_login_to_proxy @proxy_name = N'SSIS Finance', @login_name = N'CONTOSO\grp-etl-developers';

4. Package access in SSISDB

The job owner (not the proxy) needs permission to execute the package in the catalog. Grant the owner, or the group, READ and EXECUTE on the SSISDB folder or project. The proxy account needs access to whatever the package touches at runtime.

5. The job step

In SSMS: New Step → Type: SQL Server Integration Services Package → Run as: SSIS Finance → Package source: SSIS Catalog → server, then pick the package. On the Configuration tab, choose the environment reference and set parameters.

Or in T-SQL (the command string is what SSMS generates; script a job from SSMS to get the exact format for your version):

EXEC msdb.dbo.sp_add_jobstep @job_name = N'ETL - Finance Daily', @step_name = N'Run LoadGL',
     @subsystem = N'SSIS', @proxy_name = N'SSIS Finance',
     @command = N'/ISSERVER "\"\SSISDB\Finance\GL\LoadGL.dtsx\"" /SERVER "\".\"" /ENVREFERENCE 3 /Par "\"$ServerOption::SYNCHRONIZED(Boolean)\"";True /CALLERINFO SQLAGENT /REPORTING E';

SYNCHRONIZED=True makes the step wait for the package to finish, so the step fails if the package fails.

Troubleshooting

Error Cause / fix
Unable to start execution of step 1 (reason: Error authenticating proxy ...) Wrong password in the credential, account locked, or no Log on as a batch job right
The proxy "..." is not allowed for subsystem "SSIS" Run sp_grant_proxy_to_subsystem
Login ... does not have permission to use proxy Job owner not granted the proxy (step 3)
The operation cannot be started by an account that uses SQL Server Authentication SSIS catalog execution needs a Windows-authenticated caller. Make the job owner a Windows login, or use a sysadmin-owned job
Package runs but can't open a file share Proxy account lacks share or NTFS rights; test with runas /user:CONTOSO\svc-ssis-finance

Details are in SSISDB.catalog.event_messages for the execution ID shown in job history.

When the password changes

Update the credential straight away, or every job using the proxy fails:

ALTER CREDENTIAL cred_ssis_finance WITH IDENTITY = N'CONTOSO\svc-ssis-finance', SECRET = N'<new password>';

Tip

Use one proxy per business area or data domain, not per package. A proxy per package becomes unmanageable; one shared proxy becomes a super-user.

Checklist

  • Dedicated domain account with batch logon right
  • Credential and proxy, SSIS subsystem granted
  • Job owner can use the proxy and execute the package
  • Step uses SYNCHRONIZED and the right environment
  • Password rotation includes ALTER CREDENTIAL