在SQL SERVER2005中,创建一个SSIS包后,你想创建一个任务并定时运行。
这个时候你可能会遇到错误。
原因是:
SQL2005与SQL2000有很大的不同,在SQL2000中你创建任务并执行不会出现什么问题。
在SQL2005中,你需要通过安全层来运行任务。
sql任务运行环境:
1.任务执行帐号需要使用以下角色 “sysadmin, SQLAgentUserRole, SQLAgentReaderRole, SQLAgentOperatorRole ”。
2.任务需要运行在代理帐号下。
3.任务执行帐号最好被用来创建SSIS包并且你要确定这个任务执行帐号有权限运行SSIS包。
实现步骤:
我们使用Server Management Studio来执行下面任务并且你要使用sa用户登录。
1.创建一个执行帐号
创建一个“devlogin”的用户登录,输入密码,可以选择目标数据库(默认master)
服务器角色选择“sysadmin”
用户映射:你的目标数据库
Msdb database: 确认包含下面角色 SQLAgentUserRole, SQLAgentReaderRole, SQLAgentOperatorRole .
2.创建代理帐号并将代理帐号绑定到执行帐号。
下面是具体代码并且在查询分析器中执行。
Use master
--创建凭据,标识 windows帐号,密码
CREATE CREDENTIAL [MyCredential] WITH IDENTITY = 'yourdomain\myWindowAccount', secret = 'WindowLoginPassword'
Use msdb
Sp_add_proxy @proxy_name='MyProxy', @credential_name='MyCredential'
Sp_grant_login_to_proxy @login_name=' devlogin', @proxy_name='MyProxy'
Sp_grant_proxy_to_subsystem @proxy_name='MyProxy', @subsystem_name='SSIS'
3.创建SSIS包。
4.创建任务,定时并执行任务。
步骤类型:SSIS包
使用代理帐号: myProxy执行。