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
