Entre los problemas más comunes que me encuentro con las migraciones de SQL 2000 a 2005 o 2008 es que no todos los procesos se migrar a SSIS y quedan abandonados en los viejos Data Transformation Services
Esto implica que un usuario, digamos DBO de una base, no puede ejecutar su paquete al estilo:
dtsrun /n ElPaquete /s localhost /u MONITOR /p *****
Presentando un mensaje similar a este:
Date 2012-09-07 11:43:09
Log Job History (TableroIT)
Step ID 1
Server SRV-MONITOR
Job Name TableroIT_Usuarios_Portal
Step Name Corre dts
Duration 00:00:01
Sql Severity 0
Sql Message ID 0
Operator Emailed
Operator Net sent
Operator Paged
Retries Attempted 0
Message
Executed as user: SRV-MONITOR $. DTSRun: Loading...
Error: -2147217911 (80040E09); Provider Error: 229 (E5)
Error string: The EXECUTE permission was denied on the object
'sp_get_dtspackage', database 'msdb', schema 'dbo'.
Error source: Microsoft OLE DB Provider for SQL Server
Help file:
Help context: 0.
Process Exit Code 1.
The step failed.
Esto es debido a la falta de permisos en la MSDB sobre los procedimientos de manipulación de DTSs.
¿Cómo lo arreglamos? Facil:
grant execute on sp_enum_dtspackagelog to monitor
grant execute on sp_enum_dtspackages to monitor
grant execute on sp_enum_dtssteplog to monitor
grant execute on sp_enum_dtstasklog to monitor
grant execute on sp_get_dtspackage to monitor
grant execute on sp_get_dtsversion to monitor
grant execute on sp_drop_dtspackage to monitor
grant execute on sp_add_dtspackage to monitor