相信使用过Sql Server的人都应该知道,使用Sql Agent可以建立一些自动化Job来帮我们周期性地执行一些任务,其中执行SSIS包就是其中一个任务。而在SSIS包中有时候会去做读取文件等一些本地化操作,如果执行Sql Agent任务的执行账户权限不够有可能造成SSIS包无法读取文件执行失败。所以我们有时候需要去指定用哪一个账户去执行Sql Agent的任务。
1、要指定Sql Agent任务的执行账户首先要建立一个数据库凭据,如下图所示:
2、建立凭据时选择的标识(下图红色框指定的账户是一个windows账户,同时该账户还必须是Sql Agent所在SqlServer服务器的一个数据库账户,并且拥有sysadmin权限,因为Sql Agent的Job在运行时,会访问Sql Agent所在的SqlServer的MSDB数据库,如果下面红色框中的账户没有数据库的sysadmin权限访问MSDB会失败)就是后面执行Sql Agent任务的执行账户
3、然后要建立一个Sql Agent的代理角色
4、记住建立代理角色时凭据名称要选我们在上面建立的凭据(下图第一个红色框),然后在“以下子系统有效”中选择该代理角色会用到的Sql Agent任务类型,本例中我们选择任务类型为SSIS包(下图第二个红色框)。
5、然后在建立Sql Agent任务的时候,如果你选择的任务类型是执行SSIS包(下图第一个红色框),就可以在运行身份中选择我们在上面一步建立的代理角色了(下图第二个红色框),从而用本文第2步中指定的标识账户来执行SSIS包