Problema con usuarios y procedimiento almacenado

09/07/2008 - 11:05 por Angel Zapata | Informe spam
Hola a todos,

tengo un problema con 2 usuarios concretamente y no consigo la solución, a ver si algun guru de SQL sabe donde buscar.

Me ocurre con 2 usuarios que conectan remotamente con terminal server, si conecto yo con mi cuenta de usuario y despues me identifico en la
aplicación funciona perfectamente, en cambio si conecto con su cuenta de usuario, aunque en la aplicación me identifique yo me da un error de
conversion de varchar a datetime al leer un procedimiento almacenado, aunque la identificación a la base de datos la hace internamente la
aplicación como sa. Por lo que entiendo que todos tienen acceso a todo, que es la aplicación quien limita que tablas, vistas o procedimientos
puede ejecutar.

Les he cambiado de todo pero no encuentro que no estoy haciendo o que no estoy haciendo bien.

Por favor, me urge encontrar el porque, ya que deseo implementar niveles de seguridad que hasta ahora no tenía y estoy perdido.

Muchas gracias por vuestra atención
Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
09/07/2008 - 15:46 | Informe spam
Angel,

conversion de varchar a datetime al leer un procedimiento almacenado



Pudieras postear la sentencia que da el error?

No se si estaras usando alguna cadena cuyo formato es dependiente de el
lenguaje en uso o de el formato de "set dateformat". Si quieres evitar este
tipo de problemas, usa un formato independiente como "yyyymmdd" o
"yyyy-mm-ddThh:mi:ss.mmm". Para mas info sobre estos formatos, chequea la
funcion "convert" en los BOL.


AMB




"Angel Zapata" wrote:

Hola a todos,

tengo un problema con 2 usuarios concretamente y no consigo la solución, a ver si algun guru de SQL sabe donde buscar.

Me ocurre con 2 usuarios que conectan remotamente con terminal server, si conecto yo con mi cuenta de usuario y despues me identifico en la
aplicación funciona perfectamente, en cambio si conecto con su cuenta de usuario, aunque en la aplicación me identifique yo me da un error de
conversion de varchar a datetime al leer un procedimiento almacenado, aunque la identificación a la base de datos la hace internamente la
aplicación como sa. Por lo que entiendo que todos tienen acceso a todo, que es la aplicación quien limita que tablas, vistas o procedimientos
puede ejecutar.

Les he cambiado de todo pero no encuentro que no estoy haciendo o que no estoy haciendo bien.

Por favor, me urge encontrar el porque, ya que deseo implementar niveles de seguridad que hasta ahora no tenía y estoy perdido.

Muchas gracias por vuestra atención
Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Respuesta Responder a este mensaje
#2 Angel Zapata
09/07/2008 - 16:32 | Informe spam
Hola Alejandro,

el sp en cuestion es este

ALTER Procedure spPedidoGeneral
@DesdeCanal as Int, @HastaCanal as Int,
@DesdeFecha as Datetime, @HastaFecha as Datetime,
@DesdeAgente as Int, @HastaAgente as Int,
@DesdeCliente as Int, @HastaCliente as Int,
@DesdeGerencia as Int, @HastaGerencia as int,
@DesdeZona as Int, @HastaZona as int,
@DesdeDelegacion as int, @HastaDelegacion as int,
@DesdeEquipo as int, @HastaEquipo as int
AS
SELECT dbo.Pedido_Cab.PcaAño AS Año, dbo.Pedido_Cab.PcaCanCodigo AS Canal, dbo.Pedido_Cab.PcaCodigo AS Pedido,
dbo.Pedido_Cab.PcaContrato AS Contrato, dbo.Pedido_Cab.PcaFecha AS Fecha, dbo.Pedido_Cab.PcaCliCodigo AS ClienteCodigo,
dbo.Cliente.CliApellido1 + ' ' + dbo.Cliente.CliApellido2 + ' ' + dbo.Cliente.CliNombre AS ClienteNombre, dbo.Cliente.CliNIF AS ClienteNIF,
dbo.Cliente.CliTelefono1 AS ClienteTelefono, dbo.Pedido_Cab.PcaAgeCodigo AS AgenteCodigo, dbo.Agente.AgenteGerenciaCodigo,
dbo.Agente.AgenteZonaCodigo, dbo.Agente.AgenteDelegacionCodigo, dbo.Agente.AgenteEquipoCodigo
FROM dbo.Pedido_Cab LEFT OUTER JOIN
dbo.Cliente ON dbo.Pedido_Cab.PcaCliCodigo = dbo.Cliente.CliCodigo LEFT OUTER JOIN
dbo.Agente ON dbo.Pedido_Cab.PcaAgeCodigo = dbo.Agente.AgeCodigo
WHERE (PcaCanCodigo BETWEEN @DesdeCanal AND @HastaCanal)
and (PcaFecha BETWEEN @DesdeFecha AND @HastaFecha)
and (PcaAgeCodigo BETWEEN @DesdeAgente AND @HastaAgente)
and (PcaCliCodigo BETWEEN @DesdeCliente AND @HastaCliente)
and (AgenteGerenciaCodigo BETWEEN @DesdeGerencia AND @HastaGerencia)
and (AgenteZonaCodigo BETWEEN @DesdeZona AND @HastaZona)
and (AgenteDelegacionCodigo BETWEEN @DesdeDelegacion AND @HastaDelegacion)
and (AgenteEquipoCodigo BETWEEN @DesdeEquipo AND @HastaEquipo)
ORDER BY PcaContrato, PcaAño, PcaCanCodigo, PcaCodigo
return

Lo curioso es que da error cuando se ejecuta con un usuario de escritorio remoto (Terminal Server), con los usuarios locales no hay ningun problema.

Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Alejandro Mesa escribió:
Angel,

conversion de varchar a datetime al leer un procedimiento almacenado



Pudieras postear la sentencia que da el error?

No se si estaras usando alguna cadena cuyo formato es dependiente de el
lenguaje en uso o de el formato de "set dateformat". Si quieres evitar este
tipo de problemas, usa un formato independiente como "yyyymmdd" o
"yyyy-mm-ddThh:mi:ss.mmm". Para mas info sobre estos formatos, chequea la
funcion "convert" en los BOL.


AMB




"Angel Zapata" wrote:

Hola a todos,

tengo un problema con 2 usuarios concretamente y no consigo la solución, a ver si algun guru de SQL sabe donde buscar.

Me ocurre con 2 usuarios que conectan remotamente con terminal server, si conecto yo con mi cuenta de usuario y despues me identifico en la
aplicación funciona perfectamente, en cambio si conecto con su cuenta de usuario, aunque en la aplicación me identifique yo me da un error de
conversion de varchar a datetime al leer un procedimiento almacenado, aunque la identificación a la base de datos la hace internamente la
aplicación como sa. Por lo que entiendo que todos tienen acceso a todo, que es la aplicación quien limita que tablas, vistas o procedimientos
puede ejecutar.

Les he cambiado de todo pero no encuentro que no estoy haciendo o que no estoy haciendo bien.

Por favor, me urge encontrar el porque, ya que deseo implementar niveles de seguridad que hasta ahora no tenía y estoy perdido.

Muchas gracias por vuestra atención
Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Respuesta Responder a este mensaje
#3 Alejandro Mesa
09/07/2008 - 16:57 | Informe spam
Angel,

Me inmagino que esta fila sera la de el problema.

and (PcaFecha BETWEEN @DesdeFecha AND @HastaFecha)



Pudieras decirnos a que tabla pertence esta columna y cual es el tipo de
data de la misma?


AMB


"Angel Zapata" wrote:

Hola Alejandro,

el sp en cuestion es este

ALTER Procedure spPedidoGeneral
@DesdeCanal as Int, @HastaCanal as Int,
@DesdeFecha as Datetime, @HastaFecha as Datetime,
@DesdeAgente as Int, @HastaAgente as Int,
@DesdeCliente as Int, @HastaCliente as Int,
@DesdeGerencia as Int, @HastaGerencia as int,
@DesdeZona as Int, @HastaZona as int,
@DesdeDelegacion as int, @HastaDelegacion as int,
@DesdeEquipo as int, @HastaEquipo as int
AS
SELECT dbo.Pedido_Cab.PcaAño AS Año, dbo.Pedido_Cab.PcaCanCodigo AS Canal, dbo.Pedido_Cab.PcaCodigo AS Pedido,
dbo.Pedido_Cab.PcaContrato AS Contrato, dbo.Pedido_Cab.PcaFecha AS Fecha, dbo.Pedido_Cab.PcaCliCodigo AS ClienteCodigo,
dbo.Cliente.CliApellido1 + ' ' + dbo.Cliente.CliApellido2 + ' ' + dbo.Cliente.CliNombre AS ClienteNombre, dbo.Cliente.CliNIF AS ClienteNIF,
dbo.Cliente.CliTelefono1 AS ClienteTelefono, dbo.Pedido_Cab.PcaAgeCodigo AS AgenteCodigo, dbo.Agente.AgenteGerenciaCodigo,
dbo.Agente.AgenteZonaCodigo, dbo.Agente.AgenteDelegacionCodigo, dbo.Agente.AgenteEquipoCodigo
FROM dbo.Pedido_Cab LEFT OUTER JOIN
dbo.Cliente ON dbo.Pedido_Cab.PcaCliCodigo = dbo.Cliente.CliCodigo LEFT OUTER JOIN
dbo.Agente ON dbo.Pedido_Cab.PcaAgeCodigo = dbo.Agente.AgeCodigo
WHERE (PcaCanCodigo BETWEEN @DesdeCanal AND @HastaCanal)
and (PcaFecha BETWEEN @DesdeFecha AND @HastaFecha)
and (PcaAgeCodigo BETWEEN @DesdeAgente AND @HastaAgente)
and (PcaCliCodigo BETWEEN @DesdeCliente AND @HastaCliente)
and (AgenteGerenciaCodigo BETWEEN @DesdeGerencia AND @HastaGerencia)
and (AgenteZonaCodigo BETWEEN @DesdeZona AND @HastaZona)
and (AgenteDelegacionCodigo BETWEEN @DesdeDelegacion AND @HastaDelegacion)
and (AgenteEquipoCodigo BETWEEN @DesdeEquipo AND @HastaEquipo)
ORDER BY PcaContrato, PcaAño, PcaCanCodigo, PcaCodigo
return

Lo curioso es que da error cuando se ejecuta con un usuario de escritorio remoto (Terminal Server), con los usuarios locales no hay ningun problema.

Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Alejandro Mesa escribió:
> Angel,
>
>> conversion de varchar a datetime al leer un procedimiento almacenado
>
> Pudieras postear la sentencia que da el error?
>
> No se si estaras usando alguna cadena cuyo formato es dependiente de el
> lenguaje en uso o de el formato de "set dateformat". Si quieres evitar este
> tipo de problemas, usa un formato independiente como "yyyymmdd" o
> "yyyy-mm-ddThh:mi:ss.mmm". Para mas info sobre estos formatos, chequea la
> funcion "convert" en los BOL.
>
>
> AMB
>
>
>
>
> "Angel Zapata" wrote:
>
>> Hola a todos,
>>
>> tengo un problema con 2 usuarios concretamente y no consigo la solución, a ver si algun guru de SQL sabe donde buscar.
>>
>> Me ocurre con 2 usuarios que conectan remotamente con terminal server, si conecto yo con mi cuenta de usuario y despues me identifico en la
>> aplicación funciona perfectamente, en cambio si conecto con su cuenta de usuario, aunque en la aplicación me identifique yo me da un error de
>> conversion de varchar a datetime al leer un procedimiento almacenado, aunque la identificación a la base de datos la hace internamente la
>> aplicación como sa. Por lo que entiendo que todos tienen acceso a todo, que es la aplicación quien limita que tablas, vistas o procedimientos
>> puede ejecutar.
>>
>> Les he cambiado de todo pero no encuentro que no estoy haciendo o que no estoy haciendo bien.
>>
>> Por favor, me urge encontrar el porque, ya que deseo implementar niveles de seguridad que hasta ahora no tenía y estoy perdido.
>>
>> Muchas gracias por vuestra atención
>> Angel Zapata
>> Siglhogar XXI S.L.
>> "Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"
>>

Respuesta Responder a este mensaje
#4 Angel Zapata
09/07/2008 - 17:26 | Informe spam
Hola Alejandro,

el campo PcaFecha corresponde a la tabla Pedido_Cab y es de tipo datetime con longitud de 8.

Muchas gracias por tu interes

Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Alejandro Mesa escribió:
Angel,

Me inmagino que esta fila sera la de el problema.

and (PcaFecha BETWEEN @DesdeFecha AND @HastaFecha)



Pudieras decirnos a que tabla pertence esta columna y cual es el tipo de
data de la misma?


AMB


"Angel Zapata" wrote:

Hola Alejandro,

el sp en cuestion es este

ALTER Procedure spPedidoGeneral
@DesdeCanal as Int, @HastaCanal as Int,
@DesdeFecha as Datetime, @HastaFecha as Datetime,
@DesdeAgente as Int, @HastaAgente as Int,
@DesdeCliente as Int, @HastaCliente as Int,
@DesdeGerencia as Int, @HastaGerencia as int,
@DesdeZona as Int, @HastaZona as int,
@DesdeDelegacion as int, @HastaDelegacion as int,
@DesdeEquipo as int, @HastaEquipo as int
AS
SELECT dbo.Pedido_Cab.PcaAño AS Año, dbo.Pedido_Cab.PcaCanCodigo AS Canal, dbo.Pedido_Cab.PcaCodigo AS Pedido,
dbo.Pedido_Cab.PcaContrato AS Contrato, dbo.Pedido_Cab.PcaFecha AS Fecha, dbo.Pedido_Cab.PcaCliCodigo AS ClienteCodigo,
dbo.Cliente.CliApellido1 + ' ' + dbo.Cliente.CliApellido2 + ' ' + dbo.Cliente.CliNombre AS ClienteNombre, dbo.Cliente.CliNIF AS ClienteNIF,
dbo.Cliente.CliTelefono1 AS ClienteTelefono, dbo.Pedido_Cab.PcaAgeCodigo AS AgenteCodigo, dbo.Agente.AgenteGerenciaCodigo,
dbo.Agente.AgenteZonaCodigo, dbo.Agente.AgenteDelegacionCodigo, dbo.Agente.AgenteEquipoCodigo
FROM dbo.Pedido_Cab LEFT OUTER JOIN
dbo.Cliente ON dbo.Pedido_Cab.PcaCliCodigo = dbo.Cliente.CliCodigo LEFT OUTER JOIN
dbo.Agente ON dbo.Pedido_Cab.PcaAgeCodigo = dbo.Agente.AgeCodigo
WHERE (PcaCanCodigo BETWEEN @DesdeCanal AND @HastaCanal)
and (PcaFecha BETWEEN @DesdeFecha AND @HastaFecha)
and (PcaAgeCodigo BETWEEN @DesdeAgente AND @HastaAgente)
and (PcaCliCodigo BETWEEN @DesdeCliente AND @HastaCliente)
and (AgenteGerenciaCodigo BETWEEN @DesdeGerencia AND @HastaGerencia)
and (AgenteZonaCodigo BETWEEN @DesdeZona AND @HastaZona)
and (AgenteDelegacionCodigo BETWEEN @DesdeDelegacion AND @HastaDelegacion)
and (AgenteEquipoCodigo BETWEEN @DesdeEquipo AND @HastaEquipo)
ORDER BY PcaContrato, PcaAño, PcaCanCodigo, PcaCodigo
return

Lo curioso es que da error cuando se ejecuta con un usuario de escritorio remoto (Terminal Server), con los usuarios locales no hay ningun problema.

Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Alejandro Mesa escribió:
Angel,

conversion de varchar a datetime al leer un procedimiento almacenado


Pudieras postear la sentencia que da el error?

No se si estaras usando alguna cadena cuyo formato es dependiente de el
lenguaje en uso o de el formato de "set dateformat". Si quieres evitar este
tipo de problemas, usa un formato independiente como "yyyymmdd" o
"yyyy-mm-ddThh:mi:ss.mmm". Para mas info sobre estos formatos, chequea la
funcion "convert" en los BOL.


AMB




"Angel Zapata" wrote:

Hola a todos,

tengo un problema con 2 usuarios concretamente y no consigo la solución, a ver si algun guru de SQL sabe donde buscar.

Me ocurre con 2 usuarios que conectan remotamente con terminal server, si conecto yo con mi cuenta de usuario y despues me identifico en la
aplicación funciona perfectamente, en cambio si conecto con su cuenta de usuario, aunque en la aplicación me identifique yo me da un error de
conversion de varchar a datetime al leer un procedimiento almacenado, aunque la identificación a la base de datos la hace internamente la
aplicación como sa. Por lo que entiendo que todos tienen acceso a todo, que es la aplicación quien limita que tablas, vistas o procedimientos
puede ejecutar.

Les he cambiado de todo pero no encuentro que no estoy haciendo o que no estoy haciendo bien.

Por favor, me urge encontrar el porque, ya que deseo implementar niveles de seguridad que hasta ahora no tenía y estoy perdido.

Muchas gracias por vuestra atención
Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Respuesta Responder a este mensaje
#5 Alejandro Mesa
09/07/2008 - 17:33 | Informe spam
Angel,

Con longitud de 8?

Eso me suena raro, puesto que la definicion de datetime no necesita
especificacion de longitud, aunque SQL Server usa 8 bytes para su
almacenamiento.

Otra cosa, como estan ejecutando ese procedimiento?


AMB

"Angel Zapata" wrote:

Hola Alejandro,

el campo PcaFecha corresponde a la tabla Pedido_Cab y es de tipo datetime con longitud de 8.

Muchas gracias por tu interes

Angel Zapata
Siglhogar XXI S.L.
"Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"

Alejandro Mesa escribió:
> Angel,
>
> Me inmagino que esta fila sera la de el problema.
>
>> and (PcaFecha BETWEEN @DesdeFecha AND @HastaFecha)
>
> Pudieras decirnos a que tabla pertence esta columna y cual es el tipo de
> data de la misma?
>
>
> AMB
>
>
> "Angel Zapata" wrote:
>
>> Hola Alejandro,
>>
>> el sp en cuestion es este
>>
>> ALTER Procedure spPedidoGeneral
>> @DesdeCanal as Int, @HastaCanal as Int,
>> @DesdeFecha as Datetime, @HastaFecha as Datetime,
>> @DesdeAgente as Int, @HastaAgente as Int,
>> @DesdeCliente as Int, @HastaCliente as Int,
>> @DesdeGerencia as Int, @HastaGerencia as int,
>> @DesdeZona as Int, @HastaZona as int,
>> @DesdeDelegacion as int, @HastaDelegacion as int,
>> @DesdeEquipo as int, @HastaEquipo as int
>> AS
>> SELECT dbo.Pedido_Cab.PcaAño AS Año, dbo.Pedido_Cab.PcaCanCodigo AS Canal, dbo.Pedido_Cab.PcaCodigo AS Pedido,
>> dbo.Pedido_Cab.PcaContrato AS Contrato, dbo.Pedido_Cab.PcaFecha AS Fecha, dbo.Pedido_Cab.PcaCliCodigo AS ClienteCodigo,
>> dbo.Cliente.CliApellido1 + ' ' + dbo.Cliente.CliApellido2 + ' ' + dbo.Cliente.CliNombre AS ClienteNombre, dbo.Cliente.CliNIF AS ClienteNIF,
>> dbo.Cliente.CliTelefono1 AS ClienteTelefono, dbo.Pedido_Cab.PcaAgeCodigo AS AgenteCodigo, dbo.Agente.AgenteGerenciaCodigo,
>> dbo.Agente.AgenteZonaCodigo, dbo.Agente.AgenteDelegacionCodigo, dbo.Agente.AgenteEquipoCodigo
>> FROM dbo.Pedido_Cab LEFT OUTER JOIN
>> dbo.Cliente ON dbo.Pedido_Cab.PcaCliCodigo = dbo.Cliente.CliCodigo LEFT OUTER JOIN
>> dbo.Agente ON dbo.Pedido_Cab.PcaAgeCodigo = dbo.Agente.AgeCodigo
>> WHERE (PcaCanCodigo BETWEEN @DesdeCanal AND @HastaCanal)
>> and (PcaFecha BETWEEN @DesdeFecha AND @HastaFecha)
>> and (PcaAgeCodigo BETWEEN @DesdeAgente AND @HastaAgente)
>> and (PcaCliCodigo BETWEEN @DesdeCliente AND @HastaCliente)
>> and (AgenteGerenciaCodigo BETWEEN @DesdeGerencia AND @HastaGerencia)
>> and (AgenteZonaCodigo BETWEEN @DesdeZona AND @HastaZona)
>> and (AgenteDelegacionCodigo BETWEEN @DesdeDelegacion AND @HastaDelegacion)
>> and (AgenteEquipoCodigo BETWEEN @DesdeEquipo AND @HastaEquipo)
>> ORDER BY PcaContrato, PcaAño, PcaCanCodigo, PcaCodigo
>> return
>>
>> Lo curioso es que da error cuando se ejecuta con un usuario de escritorio remoto (Terminal Server), con los usuarios locales no hay ningun problema.
>>
>> Angel Zapata
>> Siglhogar XXI S.L.
>> "Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"
>>
>> Alejandro Mesa escribió:
>>> Angel,
>>>
>>>> conversion de varchar a datetime al leer un procedimiento almacenado
>>> Pudieras postear la sentencia que da el error?
>>>
>>> No se si estaras usando alguna cadena cuyo formato es dependiente de el
>>> lenguaje en uso o de el formato de "set dateformat". Si quieres evitar este
>>> tipo de problemas, usa un formato independiente como "yyyymmdd" o
>>> "yyyy-mm-ddThh:mi:ss.mmm". Para mas info sobre estos formatos, chequea la
>>> funcion "convert" en los BOL.
>>>
>>>
>>> AMB
>>>
>>>
>>>
>>>
>>> "Angel Zapata" wrote:
>>>
>>>> Hola a todos,
>>>>
>>>> tengo un problema con 2 usuarios concretamente y no consigo la solución, a ver si algun guru de SQL sabe donde buscar.
>>>>
>>>> Me ocurre con 2 usuarios que conectan remotamente con terminal server, si conecto yo con mi cuenta de usuario y despues me identifico en la
>>>> aplicación funciona perfectamente, en cambio si conecto con su cuenta de usuario, aunque en la aplicación me identifique yo me da un error de
>>>> conversion de varchar a datetime al leer un procedimiento almacenado, aunque la identificación a la base de datos la hace internamente la
>>>> aplicación como sa. Por lo que entiendo que todos tienen acceso a todo, que es la aplicación quien limita que tablas, vistas o procedimientos
>>>> puede ejecutar.
>>>>
>>>> Les he cambiado de todo pero no encuentro que no estoy haciendo o que no estoy haciendo bien.
>>>>
>>>> Por favor, me urge encontrar el porque, ya que deseo implementar niveles de seguridad que hasta ahora no tenía y estoy perdido.
>>>>
>>>> Muchas gracias por vuestra atención
>>>> Angel Zapata
>>>> Siglhogar XXI S.L.
>>>> "Si no sabes hacia adonde vas, lo mas probable es que no llegues a ninguna parte"
>>>>

Respuesta Responder a este mensaje
Ads by Google
Help Hacer una preguntaSiguiente Respuesta Tengo una respuesta
Search Busqueda sugerida