Ejecutar DTS con un JOB de SQL (usuario sin roles)

29/08/2006 - 23:30 por Fernando Mosquera | Informe spam
Hola a todos!




Tengo el siguiente problema:




Tengo que ejecutar un DTS con un Job de SQL, le armo un steps del tipo
transact-SQL y corro el dtsrun con el xp_cmdshell, OK

Hasta ahí vamos bien...



Ahora, el Job lo tiene que ver un usuario en particular desde el enterprise
manager, este usuario no tiene el roll System Administrator. (por ende solo
ve los job's de los cuales es owner)



De la única forma que pude hacer que lo vea es poniéndolo como owner del
Job. (cosa que si lo pongo como owner del Job el mismo me falla por acceso
denegado para correr el xp_cmdshell, que es lógico).







Hay alguna otra forma de crear un Job para ejecutar un dts sin ser system
administrator?

(imagino que si el steps es un "Operating System Command (CmdExec) es lo
mismo que el xp_cmdshell desde un Transact-SQL Script, o me equivoco?)



Alguna forma de que el usuario sin rolles system administrator sin ser owner
del Job lo pueda ver?



Alguna idea?



Gracias a todos de antemano,

Saludos!

Preguntas similare

Leer las respuestas

#6 Alejandro Mesa
31/08/2006 - 14:50 | Informe spam
Fernando,

Le estas pasando el password de la cuenta de windows que usas?

Chequea el topico "xp_sqlagent_proxy_account" en los BOL.


AMB


"Fernando Mosquera" wrote:

Gracias Alejandro, creo que la solución seria poner un "Non-SysAdmin Job
step proxy account".



Puntualmente cuando lo quiero configurar me da el error:



Unable to set the SQL Agent proxy account becouse of the reason listed
below.

'Error executing extended stored procedure: Specified user can not login'



Te cuento que el servicio de "SQL Server Agent" lo tengo iniciado con un
usuario de red, administrador local del servidor.



Probé poner como usuario para el proxy varios usuarios, de red con login en
SQL como sysadmin, el mismo que usa el SQL agent, etc. y me sigue dando el
error mencionado anteriormente..



Tendrás idea en que estoy metiendo la pata?

Gracias,

Saludos.



Fernando.

-

"Alejandro Mesa" wrote in message
news:
> Correccion,
>
> > Esto explica el comentario que hicistes y que copio a continuacion.
> >
> > > Ahora, el Job lo tiene que ver un usuario en particular desde el
enterprise
> > > manager, este usuario no tiene el roll System Administrator. (por ende
solo
> > > ve los job's de los cuales es owner)
>
> El comentario al que me referia es:
>
> > > De la única forma que pude hacer que lo vea es poniéndolo como owner
del
> > > Job. (cosa que si lo pongo como owner del Job el mismo me falla por
acceso
> > > denegado para correr el xp_cmdshell, que es lógico).
>
>
> AMB
>
>
> "Alejandro Mesa" wrote:
>
> > Fernando,
> >
> > Que pasaria si otro usuario necesita ver el job tambien, le estarias
> > cambiando el "owner" a ese job constantemente.
> >
> > Puedes crear un procedimiento que cree el job, lo ejecute y cuando este
> > termine que lo elimine.
> >
> > - sp_add_job
> > - sp_add_jobstep
> > - sp_add_jobschedule
> > - etc.
> >
> > Ahora, cualquiera de la opciones que escojas (cambiar owner del job o
> > ejecutar sp), para que ese usuario pueda ejecutar xp_cmdshell, este debe
> > pertenecer al role sysadmin o habercele extendido el permiso para
ejecutarlo.
> > Si el servicio MSSQLServer esta usando una cuenta de windows que no
pertenece
> > al grupo de administradores locales, entonces solo miembros de sysadmin
> > pueden ejecutar xp_cmdshell. Podemos hacer que usuarios que no
pertenecen a
> > sysadmin puedan ejecutar un paso de tarea CmdExec si le decimos a SQL
Server
> > que use una cuenta proxy para esos casos. Logico esta, que los permisos
a esa
> > cuenta proxy deben ser lo menor posible para que no pueda hacer daños a
nivel
> > de servidor. Esto explica el comentario que hicistes y que copio a
> > continuacion.
> >
> > > Ahora, el Job lo tiene que ver un usuario en particular desde el
enterprise
> > > manager, este usuario no tiene el roll System Administrator. (por ende
solo
> > > ve los job's de los cuales es owner)
> >
> > Donde seteamos esa cuenta?
> >
> > En el utilitario "Enterprise Manager", expande el servidor en cuestion,
> > expande "Management", click derecho sobre "SQL Server Agent", ve al tab
"Job
> > system" y al final veras el bloque que dice "Non-sysAdmin job step proxy
> > account". Lee un poco mas sobre el tema en los libros en linea.
> >
> >
> > AMB
> >
> > "Fernando Mosquera" wrote:
> >
> > > Hola a todos!
> > >
> > >
> > >
> > >
> > > Tengo el siguiente problema:
> > >
> > >
> > >
> > >
> > > Tengo que ejecutar un DTS con un Job de SQL, le armo un steps del tipo
> > > transact-SQL y corro el dtsrun con el xp_cmdshell, OK
> > >
> > > Hasta ahí vamos bien...
> > >
> > >
> > >
> > > Ahora, el Job lo tiene que ver un usuario en particular desde el
enterprise
> > > manager, este usuario no tiene el roll System Administrator. (por ende
solo
> > > ve los job's de los cuales es owner)
> > >
> > >
> > >
> > > De la única forma que pude hacer que lo vea es poniéndolo como owner
del
> > > Job. (cosa que si lo pongo como owner del Job el mismo me falla por
acceso
> > > denegado para correr el xp_cmdshell, que es lógico).
> > >
> > >
> > >
> > >
> > >
> > >
> > >
> > > Hay alguna otra forma de crear un Job para ejecutar un dts sin ser
system
> > > administrator?
> > >
> > > (imagino que si el steps es un "Operating System Command (CmdExec) es
lo
> > > mismo que el xp_cmdshell desde un Transact-SQL Script, o me equivoco?)
> > >
> > >
> > >
> > > Alguna forma de que el usuario sin rolles system administrator sin ser
owner
> > > del Job lo pueda ver?
> > >
> > >
> > >
> > > Alguna idea?
> > >
> > >
> > >
> > > Gracias a todos de antemano,
> > >
> > > Saludos!
> > >
> > >
> > >
> > >



Respuesta Responder a este mensaje
#7 Fernando Mosquera
01/09/2006 - 18:02 | Informe spam
Si, probe:
usuario de sql con su password
usuario del motor de sql/agente con su password
cree un nuevo usuario de red, le permiti el logueo a sql y probe tambien
usuario de sql con password del usuario adm de windows que levanta motor y
agente


en ningun caso funciono

te cuento que el usuario que levanta el agente es adm de windows, tambien
levanta el motor de sql

no se si te referiras a otro password
?

saludos

Mosquera

"Alejandro Mesa" wrote in message
news:
Fernando,

Le estas pasando el password de la cuenta de windows que usas?

Chequea el topico "xp_sqlagent_proxy_account" en los BOL.


AMB


"Fernando Mosquera" wrote:

> Gracias Alejandro, creo que la solución seria poner un "Non-SysAdmin Job
> step proxy account".
>
>
>
> Puntualmente cuando lo quiero configurar me da el error:
>
>
>
> Unable to set the SQL Agent proxy account becouse of the reason listed
> below.
>
> 'Error executing extended stored procedure: Specified user can not


login'
>
>
>
> Te cuento que el servicio de "SQL Server Agent" lo tengo iniciado con un
> usuario de red, administrador local del servidor.
>
>
>
> Probé poner como usuario para el proxy varios usuarios, de red con login


en
> SQL como sysadmin, el mismo que usa el SQL agent, etc. y me sigue dando


el
> error mencionado anteriormente..
>
>
>
> Tendrás idea en que estoy metiendo la pata?
>
> Gracias,
>
> Saludos.
>
>
>
> Fernando.
>

>
> "Alejandro Mesa" wrote in


message
> news:
> > Correccion,
> >
> > > Esto explica el comentario que hicistes y que copio a continuacion.
> > >
> > > > Ahora, el Job lo tiene que ver un usuario en particular desde el
> enterprise
> > > > manager, este usuario no tiene el roll System Administrator. (por


ende
> solo
> > > > ve los job's de los cuales es owner)
> >
> > El comentario al que me referia es:
> >
> > > > De la única forma que pude hacer que lo vea es poniéndolo como


owner
> del
> > > > Job. (cosa que si lo pongo como owner del Job el mismo me falla


por
> acceso
> > > > denegado para correr el xp_cmdshell, que es lógico).
> >
> >
> > AMB
> >
> >
> > "Alejandro Mesa" wrote:
> >
> > > Fernando,
> > >
> > > Que pasaria si otro usuario necesita ver el job tambien, le estarias
> > > cambiando el "owner" a ese job constantemente.
> > >
> > > Puedes crear un procedimiento que cree el job, lo ejecute y cuando


este
> > > termine que lo elimine.
> > >
> > > - sp_add_job
> > > - sp_add_jobstep
> > > - sp_add_jobschedule
> > > - etc.
> > >
> > > Ahora, cualquiera de la opciones que escojas (cambiar owner del job


o
> > > ejecutar sp), para que ese usuario pueda ejecutar xp_cmdshell, este


debe
> > > pertenecer al role sysadmin o habercele extendido el permiso para
> ejecutarlo.
> > > Si el servicio MSSQLServer esta usando una cuenta de windows que no
> pertenece
> > > al grupo de administradores locales, entonces solo miembros de


sysadmin
> > > pueden ejecutar xp_cmdshell. Podemos hacer que usuarios que no
> pertenecen a
> > > sysadmin puedan ejecutar un paso de tarea CmdExec si le decimos a


SQL
> Server
> > > que use una cuenta proxy para esos casos. Logico esta, que los


permisos
> a esa
> > > cuenta proxy deben ser lo menor posible para que no pueda hacer


daños a
> nivel
> > > de servidor. Esto explica el comentario que hicistes y que copio a
> > > continuacion.
> > >
> > > > Ahora, el Job lo tiene que ver un usuario en particular desde el
> enterprise
> > > > manager, este usuario no tiene el roll System Administrator. (por


ende
> solo
> > > > ve los job's de los cuales es owner)
> > >
> > > Donde seteamos esa cuenta?
> > >
> > > En el utilitario "Enterprise Manager", expande el servidor en


cuestion,
> > > expande "Management", click derecho sobre "SQL Server Agent", ve al


tab
> "Job
> > > system" y al final veras el bloque que dice "Non-sysAdmin job step


proxy
> > > account". Lee un poco mas sobre el tema en los libros en linea.
> > >
> > >
> > > AMB
> > >
> > > "Fernando Mosquera" wrote:
> > >
> > > > Hola a todos!
> > > >
> > > >
> > > >
> > > >
> > > > Tengo el siguiente problema:
> > > >
> > > >
> > > >
> > > >
> > > > Tengo que ejecutar un DTS con un Job de SQL, le armo un steps del


tipo
> > > > transact-SQL y corro el dtsrun con el xp_cmdshell, OK
> > > >
> > > > Hasta ahí vamos bien...
> > > >
> > > >
> > > >
> > > > Ahora, el Job lo tiene que ver un usuario en particular desde el
> enterprise
> > > > manager, este usuario no tiene el roll System Administrator. (por


ende
> solo
> > > > ve los job's de los cuales es owner)
> > > >
> > > >
> > > >
> > > > De la única forma que pude hacer que lo vea es poniéndolo como


owner
> del
> > > > Job. (cosa que si lo pongo como owner del Job el mismo me falla


por
> acceso
> > > > denegado para correr el xp_cmdshell, que es lógico).
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > >
> > > > Hay alguna otra forma de crear un Job para ejecutar un dts sin ser
> system
> > > > administrator?
> > > >
> > > > (imagino que si el steps es un "Operating System Command (CmdExec)


es
> lo
> > > > mismo que el xp_cmdshell desde un Transact-SQL Script, o me


equivoco?)
> > > >
> > > >
> > > >
> > > > Alguna forma de que el usuario sin rolles system administrator sin


ser
> owner
> > > > del Job lo pueda ver?
> > > >
> > > >
> > > >
> > > > Alguna idea?
> > > >
> > > >
> > > >
> > > > Gracias a todos de antemano,
> > > >
> > > > Saludos!
> > > >
> > > >
> > > >
> > > >
>
>
>
email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una pregunta AnteriorRespuesta Tengo una respuesta
Search Busqueda sugerida