Quiero ejecutar un paquete SSIS que contenga las tareas Transferir objetos de SQL Server. Los servidores involucrados están en el mismo dominio, pero los servicios de SQL Server se ejecutan en cuentas de servicio locales. Entonces el ambiente se ve así:
Dominio
Servidor 1
- SQL Server ejecutándose en una cuenta local
- En el sistema de archivos: paquete SSIS
- En el Agente SQL Server: un trabajo
Servidor 2
- SQL Server ejecutándose en una cuenta local
Para poder iniciar sesión en ambos servidores, he creado una cuenta de dominio para usar como cuenta de servicio. Cuando uso esta cuenta de dominio para iniciar sesión en el Servidor 1, y luego ejecuto el paquete desde el sistema de archivos, cada paso tiene éxito. Sin embargo, cuando intento agregar el trabajo a SQL Server me encuentro con uno de los siguientes problemas:
Situación 1. Dueño del trabajo: cuenta local; ejecute el paso SSIS como proxy de la cuenta de dominio . Cuando configuro el propietario del trabajo en una cuenta local, pero ejecuto el trabajo como proxy de la cuenta de dominio, el trabajo en sí se ejecutará con éxito, pero el paquete arroja errores como
La ejecución falló con el siguiente error: "El directorio 'LocalApplicationData' no existe".
Este error se puede solucionar creando un inicio de sesión con derechos de administrador para el usuario del dominio en el Servidor 1, pero obviamente esta no es una solución deseable. Agregar la cuenta a uno de los grupos de agentes / DTS de SQL Server tampoco funciona.
Situación 2. Propietario del trabajo: cuenta de dominio; ejecute el paso SSIS como proxy de la cuenta de dominio . Cuando configuro tanto el propietario del trabajo como el 'ejecutar como usuario' para el paso a la cuenta de dominio, el trabajo no se iniciará en absoluto, con el siguiente error:
No se puede determinar si el propietario (dominio \ usuario de dominio) del trabajo
Job name
tiene acceso al servidor (motivo: no se pudo obtener información sobre el grupo / usuario de Windows NT 'Dominio \ usuario de dominio', código de error 0x5. [SQLSTATE 42000] (Error 15404)) .
Creo que el último error se debe a que SQL Server se ejecuta en una cuenta local y no puede ver qué derechos tienen las cuentas de dominio.
¿Cuál es la forma correcta de ejecutar el trabajo? La situación 2 me parece más limpia, pero parece imposible porque SQL Server se ejecuta en una cuenta local. La situación 1 también funcionaría, pero no le va a dar derechos administrativos a un usuario de dominio en mi SQL Server.
ACTUALIZAR:
@JonSeigel y @ Mr.Brownstone:
Parece plausible que este problema se deba a la falta de permisos. Sin embargo, el error se trata de la inexistencia de 'LocalApplicationData', una de las carpetas que se genera para cada cuenta. Ya inicié sesión en el servidor con las credenciales con las que se ejecuta el paquete (creando un directorio de perfil) e intenté varias combinaciones de permisos para el directorio de perfil. Incluso cuando concedo manualmente casi todos los permisos en este directorio específico, aparece el error mencionado anteriormente.
Mientras investigaba un poco más, me encontré con un hilo del foro en http://www.sqlservercentral.com/Forums/Topic391332-148-1.aspx#bm391441 que es bastante similar, aunque sin solución tampoco.
fuente
Respuestas:
Mi opinión personal es que la opción # 1 es el camino a seguir. Pero no veo la necesidad de que tenga que otorgar acceso de administrador local a la cuenta de dominio. Me parece que requiere acceso a ciertas carpetas y archivos, por lo que puede otorgarle al usuario de dominio acceso solo a los recursos que necesita para ejecutar el paquete con éxito. Esto se puede hacer a través del cuadro de diálogo de propiedades de archivo / carpeta y seleccione la pestaña de seguridad; no debería ser necesario configurarlo para cada archivo y carpeta, ya que podría establecer los permisos del directorio principal y configurarlos para anular las propiedades secundarias.
Espero que esto te ayude.
fuente