xp_cmdshell

19/02/2004 - 13:59 por cArLeS!! | Informe spam
Hola!

En un servidor con Windows 2000 Server y SQL Server 2000
he creado un DTS que simplemente abre un archivo de
excel, hace una serie de operaciones con él, y lo cierra.

Si ejecuto este DTS desde el "Enterprise Manager" todo
funciona correctamente, pero cuando me conecto desde otra
maquina (mediante el Query Analyzer, por ejemplo) y
ejecuto el DTS mediante xp_cmdshell (para que el DTS se
ejecute EN EL SERVIDOR) recibo un mensaje de error que
dice que no encuentra el archivo de excel o que no tiene
permiso para abrirlo.

Alguien tiene alguna idea de como solucionar esto?

Muchas gracias!!

cArLeS!!

Preguntas similare

Leer las respuestas

#1 Maximiliano Damian Accotto
19/02/2004 - 14:30 | Informe spam
Hola, supongo que el inicio del Servicio de SqlServer lo estas haciendo con
un usuario que sea del tipo Administrador verdad?

Ahora cuando te conectas al QA lo has probado con el SA o Admin?


Salu2 enormes

Maximiliano Damian Accotto

Fundicion San Cayetano S.A.
Gerente de IT
Buenos Aires - Argentina
-
Desarrollador 3 estrellas
http://www.microsoft.com/spanish/ms...efault.asp
-
(maxi_accotto[arroba]speedy.com.ar)
MSN:
-

"cArLeS!!" escribió en el mensaje
news:130f101c3f6e8$30ad1180$
Hola!

En un servidor con Windows 2000 Server y SQL Server 2000
he creado un DTS que simplemente abre un archivo de
excel, hace una serie de operaciones con él, y lo cierra.

Si ejecuto este DTS desde el "Enterprise Manager" todo
funciona correctamente, pero cuando me conecto desde otra
maquina (mediante el Query Analyzer, por ejemplo) y
ejecuto el DTS mediante xp_cmdshell (para que el DTS se
ejecute EN EL SERVIDOR) recibo un mensaje de error que
dice que no encuentra el archivo de excel o que no tiene
permiso para abrirlo.

Alguien tiene alguna idea de como solucionar esto?

Muchas gracias!!

cArLeS!!
Respuesta Responder a este mensaje
#2 Javier Loria
19/02/2004 - 17:30 | Informe spam
Hola cArLeS:
DTS es una tecnologia del cliente, si ejecutas el comando desde el
Enterprise Manager EN EL SERVIDOR, opera sobre el servidor.
Si ejecutas un DTSRUN el DTS usara los recursos de la estacion.
Si envias una sentencia del tipo: XP_CMDSHELL 'DTSRUN ', entonces la
sentencia de SQL se envia al servidor y se ejecuta en le servidor, pero solo
los SYSADMIN tendran permiso de hacer esto y correran bajo el contexto de la
cuenta asignada al servidor NO en el contexto del usuario. Si no es un
Usuario corriente el que lo ejecuta debes asignar una cuenta especial
llamada SQLExecutiveCmdExec, que tenga los permisos necesarios.
En general depende de lo que quieras hacer asi dependera la solucion, si
quieres que un DTS tome el archivo local de la estacion, o ejecutas
directamente DTSRUN o pides que se instale el archivo en un folder
compartido para que el servidor pueda ver los datos y pasas la ruta por
parametro.
Si el archivo de Excel esta en el servidor, dependera de si el usuario
es SYSADMIN o no. Si es SYSADMIN debes asignar una cuenta al servidor de SQL
y que tenga permisos de leer el archivo. Si NO es SYSADMIN debes configurar
la cuenta SQLExecutivCmdExec.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

cArLeS!! escribio:
Hola!

En un servidor con Windows 2000 Server y SQL Server 2000
he creado un DTS que simplemente abre un archivo de
excel, hace una serie de operaciones con él, y lo cierra.

Si ejecuto este DTS desde el "Enterprise Manager" todo
funciona correctamente, pero cuando me conecto desde otra
maquina (mediante el Query Analyzer, por ejemplo) y
ejecuto el DTS mediante xp_cmdshell (para que el DTS se
ejecute EN EL SERVIDOR) recibo un mensaje de error que
dice que no encuentra el archivo de excel o que no tiene
permiso para abrirlo.

Alguien tiene alguna idea de como solucionar esto?

Muchas gracias!!

cArLeS!!
Respuesta Responder a este mensaje
#3 cArLeS!!
20/02/2004 - 09:55 | Informe spam
Muchas gracias a los dos por la ayuda. La verdad es que
lo que me habeis dicho ha solucionado mi problema.

Gracias de nuevo.

cArLeS!!



Hola cArLeS:
DTS es una tecnologia del cliente, si ejecutas el


comando desde el
Enterprise Manager EN EL SERVIDOR, opera sobre el


servidor.
Si ejecutas un DTSRUN el DTS usara los recursos de


la estacion.
Si envias una sentencia del tipo:


XP_CMDSHELL 'DTSRUN ', entonces la
sentencia de SQL se envia al servidor y se ejecuta en le


servidor, pero solo
los SYSADMIN tendran permiso de hacer esto y correran


bajo el contexto de la
cuenta asignada al servidor NO en el contexto del


usuario. Si no es un
Usuario corriente el que lo ejecuta debes asignar una


cuenta especial
llamada SQLExecutiveCmdExec, que tenga los permisos


necesarios.
En general depende de lo que quieras hacer asi


dependera la solucion, si
quieres que un DTS tome el archivo local de la estacion,


o ejecutas
directamente DTSRUN o pides que se instale el archivo en


un folder
compartido para que el servidor pueda ver los datos y


pasas la ruta por
parametro.
Si el archivo de Excel esta en el servidor,


dependera de si el usuario
es SYSADMIN o no. Si es SYSADMIN debes asignar una


cuenta al servidor de SQL
y que tenga permisos de leer el archivo. Si NO es


SYSADMIN debes configurar
la cuenta SQLExecutivCmdExec.
Saludos,


Javier Loria
Costa Rica
Se aprecia la inclusion de DDL (CREATE, INSERTS, etc.)
que pueda ser copiado y pegado al Query Analizer.
La version de SQL y Service Pack tambien ayuda.

cArLeS!! escribio:
Hola!

En un servidor con Windows 2000 Server y SQL Server




2000
he creado un DTS que simplemente abre un archivo de
excel, hace una serie de operaciones con él, y lo




cierra.

Si ejecuto este DTS desde el "Enterprise Manager" todo
funciona correctamente, pero cuando me conecto desde




otra
maquina (mediante el Query Analyzer, por ejemplo) y
ejecuto el DTS mediante xp_cmdshell (para que el DTS se
ejecute EN EL SERVIDOR) recibo un mensaje de error que
dice que no encuentra el archivo de excel o que no




tiene
permiso para abrirlo.

Alguien tiene alguna idea de como solucionar esto?

Muchas gracias!!

cArLeS!!




.

email Siga el debate Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaRespuesta Tengo una respuesta
Search Busqueda sugerida