Cómo programar el paquete SSIS para que se ejecute como algo distinto a la cuenta de servicio del Agente SQL

StackOverflow https://stackoverflow.com/questions/812428

Pregunta

En SQL Server 2005, ¿es posible programar un paquete SSIS para que se ejecute algo que no sea la cuenta de servicio del Agente SQL?

Tengo un paquete SSIS que establece una conexión con una base de datos y ejecuta un procedimiento almacenado. Mi criterio es que no especificaré nombres de usuario / contraseñas en un paquete o configuración de paquetes, por lo que quiero usar la autenticación integrada.

El problema es que, de forma predeterminada, un paso en un trabajo se ejecuta como una Cuenta de servicio del Agente SQL y nuestro grupo de servidores no quiere otorgar a la cuenta derechos de ejecución sobre los procedimientos almacenados que ejecutará mi paquete. Así que estamos tratando de encontrar una manera de especificar una cuenta diferente en el paso, para que el paquete se ejecute en un contexto diferente. ¿Es eso posible?

¿Fue útil?

Solución

Si desea ejecutar el paquete SSIS desde trabajos del Agente SQL, puede crear un proxy. Consulte aquí para obtener más información.

Otros consejos

Si tiene acceso a SQL Server Agent a través de SQL Server Management Studio, estos son los pasos para crear un trabajo utilizando la interfaz gráfica de usuario. Los pasos muestran cómo crear un trabajo SQL para ejecutar SSIS usando la cuenta de servicio del Agente SQL y también cómo crear un proxy para ejecutarse bajo una diferente utilizando diferentes credenciales.

  1. Vaya a SQL Server Management Studio. Expanda SQL Server Agent y haga clic con el botón derecho en Trabajos, luego seleccione Nuevo trabajo ... como se muestra en la captura de pantalla # 1 .

  2. Proporcionar un nombre y Propietario de manera predeterminada será la cuenta que crea el trabajo, pero puede cambiarlo de acuerdo con sus requisitos. Asigne una categoría si desea y también proporcione una descripción. Consulte la captura de pantalla # 2 .

  3. En la sección Pasos, haga clic en Nuevo ... como se muestra en la captura de pantalla # 3 .

  4. En el cuadro de diálogo Nuevo paso de trabajo, proporcione un nombre de Paso. Seleccione Paquete de servicios de integración de SQL Server en Tipo. Este paso se ejecutará en Cuenta de servicio del Agente SQL de forma predeterminada. Seleccione el origen del paquete como Sistema de archivos y busque la ruta del paquete haciendo clic en puntos suspensivos. Esto llenará la ruta del paquete. Consulte la captura de pantalla # 4 . Si no desea que el paso se ejecute en Cuenta de servicio del Agente SQL , consulte los pasos # 8 - 9 para saber cómo puede usar una cuenta diferente.

  5. Si tiene un archivo de configuración SSIS (.dtsConfig) para el paquete, haga clic en la pestaña Configuraciones y agregue el archivo de configuración como se muestra en la captura de pantalla # 5 .

  6. Haga clic en Aceptar y aparecerá el paquete en el paso 1 como se muestra en la captura de pantalla # 6 . Del mismo modo, puede crear diferentes pasos.

  7. Una vez que se haya creado el trabajo, puede hacer clic derecho en el trabajo y seleccionar Script Job como - > CREAR A - > Nueva ventana del editor de consultas para generar el script como se muestra en la captura de pantalla # 7 .

  8. Para ejecutar el paso SSIS en una cuenta diferente, en Management Studio, navegue hasta Seguridad - > haga clic derecho en Cedentials - > seleccione Nueva credencial ... como se muestra en la captura de pantalla # 8 .

  9. En el cuadro de diálogo Nueva credencial , proporcione un nombre de credencial, una cuenta de Windows y una contraseña con las que le gustaría ejecutar los pasos del SSIS en trabajos SQL. Consulte la captura de pantalla # 9 . La credencial se creará como se muestra en la captura de pantalla # 10 .

  10. A continuación, necesitamos crear un proxy. En Management Studio, navegue hasta SQL Server Agent - > Proxies - > haga clic con el botón derecho en Ejecución del paquete SSIS - > seleccione Nuevo proxy ... como se muestra en la captura de pantalla # 11 .

  11. En la ventana Nueva cuenta de proxy, proporcione un nombre de Proxy, seleccione la Credencial recién creada, proporcione una descripción y seleccione Paquete de servicios de integración de SQL Server como se muestra en la captura de pantalla # 12 . La cuenta de proxy se debe crear como se muestra en la captura de pantalla # 13 .

  12. Ahora, si regresa al paso del trabajo de SQL, debería ver la cuenta de Proxy recién creada en el menú desplegable Ejecutar como . Consulte la captura de pantalla # 14 .

Espero que ayude.

Captura de pantalla nº 1:

1

Captura de pantalla nº 2:

2

Captura de pantalla 3:

3

Captura de pantalla nº 4:

4

Captura de pantalla nº 5:

5

Captura de pantalla nº 6:

6

Captura de pantalla nº 7:

7

Captura de pantalla # 8:

8

Captura de pantalla nº 9:

9

Captura de pantalla nº 10:

10

Captura de pantalla nº 11:

11

Captura de pantalla nº 12:

12

Captura de pantalla nº 13:

13

Captura de pantalla nº 14:

14

Con SQL 2012 recibí un error que indica que la cuenta de usuario elegida no puede ser un proxy. Usando la siguiente consulta resolví este problema:

use msdb
GO
exec sp_grant_login_to_proxy @login_name = 'MyLoginName', @proxy_name= 'proxy_SSIS'
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top