inpersonificacion de store procedures

29/04/2005 - 09:48 por .·:m·a·r·l·a:·. | Informe spam
Hola a todos:

quisiera preguntar si hay alguna opcion de inpersonificar el acesso a los
store procedures, creo que se dice a si

el caso es que tengo store procedures que usan tablas y vistas incluso de
otras bases de datos (en el mismo server), pero si intento llamar este
estore procedure desde alguna aplicacion no funciona a menos que autorize a
dicho usuario acesso a las tablas y vistas que usa el store procedure

cuando lo que quiero es hace estos store procedures para "dar" al usuario
solamente estos para entrada de daots y vistas para salida de datos

supongo que sea possible, pero no se como hacerlo

gracias pro adelantado

Preguntas similare

Leer las respuestas

#6 qwalgrande
12/05/2005 - 21:29 | Informe spam
Hola.

Yo no he sido capaz de reproducir tu problema. Con todos los objetos creados
por el mismo usuario, creo una vista que accede a dos bases de datos. Un
usuario que sólo tiene acceso a una de las bases de datos (en la que está la
vista, evidentemente) y exclusivamente con permisos de lectura sobre la
vista, y no sobre las tablas, puede realizar consultas sin problema,
independientemente del valor de la propiedad "Cross DB Ownership Chaining".

Descartado esto, ¿podrías crear un nuevo login, darle acceso sólo a la base
de datos en la que está el procedimiento almacenado y darle permisos de
ejecución exclusivamente sobre el procedimiento? Sería para descartar la
pertenencia del usuario a grupos, roles y demás. ¿Podrías copiarnos el
mensaje de error tal cual lo devuelve el servidor?

qwalgrande



".·:m·a·r·l·a:·." escribió en el mensaje
news:
Hola de nuevo

uso 2000 SP3 y me he leido el articulo que comentas

he experimentado tambien que si en una base de datos hago referencia a
tablas de otras bases de datos en el mismo server me da error de permisos
simepre que no tenga el usuario en ambas bases de datos y con permisos
"VIEW" a la tabla usada

entiendo pues que debo ejecutar EXEC sp_configure 'Cross DB Ownership
Chaining', '1' para quela referencia otraBaseDeDatos.dbo.nombreTabla
funcione sin problemas, no es asi ?

gracias por el tiempo empleado

"qwalgrande" wrote in message
news:
Hola.

2 comentarios al respecto de lo que comentas.

1.- Échale un ojo a este link



http://msdn.microsoft.com/library/d..._1cj5.asp,
en el que se habla de ownership chaining (no sé si traducirlo como cadena


de
propiedad).
2.- La impersonación de stores procedures viene implementada en SQL
Server
2005, con lo que podrás definir las credenciales con las que ejecutar
determinados procedimientos almacenados (es decir, yo que soy usu1
ejecuto
este sp como si fuera usu2). Es un concepto curioso y requiere de unos
permisos elevados para ser usado, pero por la novedad es cuando menos
interesante. Al menos, a mí me lo ha parecido.

qwalgrande


".·:m·a·r·l·a:·." escribió en el mensaje
news:OH%
>2 - todas las llamadas a vistas y tablas estan tal que


dbo.nombredelavista
>
> 1 - perdona pero no se muy bien a que te refieres con sql dinamico, he
> intentado buscar en los bol y no he encontrado nada
>
> explico lo que realiza el sp, dicho sp lo utilizo para crear los


clientes
> -parametros de entrada: nombre, telefono, pais, tipo cliente...
> - busco en vistas de la misma base de daots (pero que dependen de otras
> bases de datos) valores clave para pais o tipo de cliente (codigo
> numerico)
> - alguna modificacion de variables internas al sp para crear el codigo


del
> cliente (este tiene una logica que depende de que tipo de cliente es
> - escritura de todos los datos del cliente en una tabla de la misma
> base
> de
> datos
> - borrado de contenido y escritura en otra tabla de la misma base de


datos
> tb el codigo de cliente creado
> fin
>
> o sea que las unicas llamadas (selects) que se realizan son a vistas
> las
> cuales conectan a otras bases de datos
>
> he provado a quitar permisos (crucecita roja) en todos y cada un de los
> objetos de las otras bases de datos y entonces si funciona, o sea que
> necesita simplemente como usuario de la base de datos aunque no tenga
> ningun
> permiso
>
>
> "Alejandro Mesa" wrote in
> message
> news:
>> 1 - Estas usando sql dinamico para acceder esas tablas dentro del
>> procedimiento almacenado?
>>
>> 2 - Estas qualificando todos los objetos referenciados dentro del
>> procedimeinto con el nombre del dueño del objeto?, por ejemplo
> [dbo].[orders]
>>
>>
>> AMB
>>
>> ".·:m·a·r·l·a:·." wrote:
>>
>> > Hola a todos:
>> >
>> > quisiera preguntar si hay alguna opcion de inpersonificar el acesso
>> > a
> los
>> > store procedures, creo que se dice a si
>> >
>> > el caso es que tengo store procedures que usan tablas y vistas


incluso
> de
>> > otras bases de datos (en el mismo server), pero si intento llamar


este
>> > estore procedure desde alguna aplicacion no funciona a menos que
> autorize a
>> > dicho usuario acesso a las tablas y vistas que usa el store
>> > procedure
>> >
>> > cuando lo que quiero es hace estos store procedures para "dar" al
> usuario
>> > solamente estos para entrada de daots y vistas para salida de datos
>> >
>> > supongo que sea possible, pero no se como hacerlo
>> >
>> > gracias pro adelantado
>> >
>> >
>> >
>> >
>
>






Respuesta Responder a este mensaje
#7 .·:m·a·r·l·a:·.
13/05/2005 - 09:08 | Informe spam
sigo igual con el mismo problema:

tengo una tabla (tabla_a) en la base de datos db_a

en la base de datos db_b creo una vista tal que:

create view dbo.vista_b
as
select filed_b1, field_b2
from db_a.dbo.tabla_a
group by filed_b1, field_b2

creo un nuevo usuario con seguridad SQL con la segunda base de datos (db_b)
como predefinida y permisos para ejecutar la vista

todo ello con mi cuenta de usuario de dominio NT con privilegios de
administrador

en otro pc abro el Enterprise manager y hago login con el nuevo usuario

abro la db_b y ejecuto la vista, error :

[Microsoft][ODBC SQL Server Driver][SQL Server]Server user 'user_abc' is not
valid in database 'db_b'

todo esto con o sin el "cross DB ownership chaining"

vuelvo a la cuenta de administrador y añado ese usuario como usuario de la
base de datos (db_a), ningun permiso aun

desde la cuenta 'user_abc', casos :
con "cross DB ownership chaining" = 1 -> funciona
con "cross DB ownership chaining" = 0 -> nuevo error:

[Microsoft][ODBC SQL Server Driver][SQL Server]SELECT permission denied on
object 'table_a', database 'db_a', owner 'dbo'

para que funcione la vista teniendo "cross DB ownership chaining" = 0 solo
possible si doy permisos select en la tabla tabla_a

alguna idea ??

decir que tengo removido el usuario guest de ambas bases de datos, no se si
esto interfiere en algo

gracias por adelantado


"qwalgrande" wrote in message
news:
Hola.

Yo no he sido capaz de reproducir tu problema. Con todos los objetos


creados
por el mismo usuario, creo una vista que accede a dos bases de datos. Un
usuario que sólo tiene acceso a una de las bases de datos (en la que está


la
vista, evidentemente) y exclusivamente con permisos de lectura sobre la
vista, y no sobre las tablas, puede realizar consultas sin problema,
independientemente del valor de la propiedad "Cross DB Ownership


Chaining".

Descartado esto, ¿podrías crear un nuevo login, darle acceso sólo a la


base
de datos en la que está el procedimiento almacenado y darle permisos de
ejecución exclusivamente sobre el procedimiento? Sería para descartar la
pertenencia del usuario a grupos, roles y demás. ¿Podrías copiarnos el
mensaje de error tal cual lo devuelve el servidor?

qwalgrande



".·:m·a·r·l·a:·." escribió en el mensaje
news:
> Hola de nuevo
>
> uso 2000 SP3 y me he leido el articulo que comentas
>
> he experimentado tambien que si en una base de datos hago referencia a
> tablas de otras bases de datos en el mismo server me da error de


permisos
> simepre que no tenga el usuario en ambas bases de datos y con permisos
> "VIEW" a la tabla usada
>
> entiendo pues que debo ejecutar EXEC sp_configure 'Cross DB Ownership
> Chaining', '1' para quela referencia otraBaseDeDatos.dbo.nombreTabla
> funcione sin problemas, no es asi ?
>
> gracias por el tiempo empleado
>
> "qwalgrande" wrote in message
> news:
>> Hola.
>>
>> 2 comentarios al respecto de lo que comentas.
>>
>> 1.- Échale un ojo a este link
>>
>


http://msdn.microsoft.com/library/d..._1cj5.asp,
>> en el que se habla de ownership chaining (no sé si traducirlo como


cadena
> de
>> propiedad).
>> 2.- La impersonación de stores procedures viene implementada en SQL
>> Server
>> 2005, con lo que podrás definir las credenciales con las que ejecutar
>> determinados procedimientos almacenados (es decir, yo que soy usu1
>> ejecuto
>> este sp como si fuera usu2). Es un concepto curioso y requiere de unos
>> permisos elevados para ser usado, pero por la novedad es cuando menos
>> interesante. Al menos, a mí me lo ha parecido.
>>
>> qwalgrande
>>
>>
>> ".·:m·a·r·l·a:·." escribió en el mensaje
>> news:OH%
>> >2 - todas las llamadas a vistas y tablas estan tal que
> dbo.nombredelavista
>> >
>> > 1 - perdona pero no se muy bien a que te refieres con sql dinamico,


he
>> > intentado buscar en los bol y no he encontrado nada
>> >
>> > explico lo que realiza el sp, dicho sp lo utilizo para crear los
> clientes
>> > -parametros de entrada: nombre, telefono, pais, tipo cliente...
>> > - busco en vistas de la misma base de daots (pero que dependen de


otras
>> > bases de datos) valores clave para pais o tipo de cliente (codigo
>> > numerico)
>> > - alguna modificacion de variables internas al sp para crear el


codigo
> del
>> > cliente (este tiene una logica que depende de que tipo de cliente es
>> > - escritura de todos los datos del cliente en una tabla de la misma
>> > base
>> > de
>> > datos
>> > - borrado de contenido y escritura en otra tabla de la misma base de
> datos
>> > tb el codigo de cliente creado
>> > fin
>> >
>> > o sea que las unicas llamadas (selects) que se realizan son a vistas
>> > las
>> > cuales conectan a otras bases de datos
>> >
>> > he provado a quitar permisos (crucecita roja) en todos y cada un de


los
>> > objetos de las otras bases de datos y entonces si funciona, o sea que
>> > necesita simplemente como usuario de la base de datos aunque no tenga
>> > ningun
>> > permiso
>> >
>> >
>> > "Alejandro Mesa" wrote in
>> > message
>> > news:
>> >> 1 - Estas usando sql dinamico para acceder esas tablas dentro del
>> >> procedimiento almacenado?
>> >>
>> >> 2 - Estas qualificando todos los objetos referenciados dentro del
>> >> procedimeinto con el nombre del dueño del objeto?, por ejemplo
>> > [dbo].[orders]
>> >>
>> >>
>> >> AMB
>> >>
>> >> ".·:m·a·r·l·a:·." wrote:
>> >>
>> >> > Hola a todos:
>> >> >
>> >> > quisiera preguntar si hay alguna opcion de inpersonificar el


acesso
>> >> > a
>> > los
>> >> > store procedures, creo que se dice a si
>> >> >
>> >> > el caso es que tengo store procedures que usan tablas y vistas
> incluso
>> > de
>> >> > otras bases de datos (en el mismo server), pero si intento llamar
> este
>> >> > estore procedure desde alguna aplicacion no funciona a menos que
>> > autorize a
>> >> > dicho usuario acesso a las tablas y vistas que usa el store
>> >> > procedure
>> >> >
>> >> > cuando lo que quiero es hace estos store procedures para "dar" al
>> > usuario
>> >> > solamente estos para entrada de daots y vistas para salida de


datos
>> >> >
>> >> > supongo que sea possible, pero no se como hacerlo
>> >> >
>> >> > gracias pro adelantado
>> >> >
>> >> >
>> >> >
>> >> >
>> >
>> >
>>
>>
>
>


Respuesta Responder a este mensaje
#8 qwalgrande
13/05/2005 - 22:33 | Informe spam
Hola.

Le he dado un buen repaso al tema, que buena falta me hacía. Un par de
ideas.

Realmente, tú necesitas tener habilitada la cadena de propiedad entre bases
de datos, ya que quieres que un usuario de la base de datos A pueda leer de
una tabla de la base de datos B, en la que no sólo no tiene permisos, es que
no existe. ¿Por qué quieres tener la cadena de propiedad deshabilitada
entonces?

Y por otra parte, si no quieres que todo el servidor tenga habilitada la
cadena de propiedad, puedes habilitarlo a nivel de base de datos.

EXEC sp_dboption 'Northwind', 'db chaining', 'true'

qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


".·:m·a·r·l·a:·." escribió en el mensaje
news:
sigo igual con el mismo problema:

tengo una tabla (tabla_a) en la base de datos db_a

en la base de datos db_b creo una vista tal que:

create view dbo.vista_b
as
select filed_b1, field_b2
from db_a.dbo.tabla_a
group by filed_b1, field_b2

creo un nuevo usuario con seguridad SQL con la segunda base de datos
(db_b)
como predefinida y permisos para ejecutar la vista

todo ello con mi cuenta de usuario de dominio NT con privilegios de
administrador

en otro pc abro el Enterprise manager y hago login con el nuevo usuario

abro la db_b y ejecuto la vista, error :

[Microsoft][ODBC SQL Server Driver][SQL Server]Server user 'user_abc' is
not
valid in database 'db_b'

todo esto con o sin el "cross DB ownership chaining"

vuelvo a la cuenta de administrador y añado ese usuario como usuario de la
base de datos (db_a), ningun permiso aun

desde la cuenta 'user_abc', casos :
con "cross DB ownership chaining" = 1 -> funciona
con "cross DB ownership chaining" = 0 -> nuevo error:

[Microsoft][ODBC SQL Server Driver][SQL Server]SELECT permission denied on
object 'table_a', database 'db_a', owner 'dbo'

para que funcione la vista teniendo "cross DB ownership chaining" = 0 solo
possible si doy permisos select en la tabla tabla_a

alguna idea ??

decir que tengo removido el usuario guest de ambas bases de datos, no se
si
esto interfiere en algo

gracias por adelantado


"qwalgrande" wrote in message
news:
Hola.

Yo no he sido capaz de reproducir tu problema. Con todos los objetos


creados
por el mismo usuario, creo una vista que accede a dos bases de datos. Un
usuario que sólo tiene acceso a una de las bases de datos (en la que está


la
vista, evidentemente) y exclusivamente con permisos de lectura sobre la
vista, y no sobre las tablas, puede realizar consultas sin problema,
independientemente del valor de la propiedad "Cross DB Ownership


Chaining".

Descartado esto, ¿podrías crear un nuevo login, darle acceso sólo a la


base
de datos en la que está el procedimiento almacenado y darle permisos de
ejecución exclusivamente sobre el procedimiento? Sería para descartar la
pertenencia del usuario a grupos, roles y demás. ¿Podrías copiarnos el
mensaje de error tal cual lo devuelve el servidor?

qwalgrande



".·:m·a·r·l·a:·." escribió en el mensaje
news:
> Hola de nuevo
>
> uso 2000 SP3 y me he leido el articulo que comentas
>
> he experimentado tambien que si en una base de datos hago referencia a
> tablas de otras bases de datos en el mismo server me da error de


permisos
> simepre que no tenga el usuario en ambas bases de datos y con permisos
> "VIEW" a la tabla usada
>
> entiendo pues que debo ejecutar EXEC sp_configure 'Cross DB Ownership
> Chaining', '1' para quela referencia otraBaseDeDatos.dbo.nombreTabla
> funcione sin problemas, no es asi ?
>
> gracias por el tiempo empleado
>
> "qwalgrande" wrote in message
> news:
>> Hola.
>>
>> 2 comentarios al respecto de lo que comentas.
>>
>> 1.- Échale un ojo a este link
>>
>


http://msdn.microsoft.com/library/d..._1cj5.asp,
>> en el que se habla de ownership chaining (no sé si traducirlo como


cadena
> de
>> propiedad).
>> 2.- La impersonación de stores procedures viene implementada en SQL
>> Server
>> 2005, con lo que podrás definir las credenciales con las que ejecutar
>> determinados procedimientos almacenados (es decir, yo que soy usu1
>> ejecuto
>> este sp como si fuera usu2). Es un concepto curioso y requiere de unos
>> permisos elevados para ser usado, pero por la novedad es cuando menos
>> interesante. Al menos, a mí me lo ha parecido.
>>
>> qwalgrande
>>
>>
>> ".·:m·a·r·l·a:·." escribió en el mensaje
>> news:OH%
>> >2 - todas las llamadas a vistas y tablas estan tal que
> dbo.nombredelavista
>> >
>> > 1 - perdona pero no se muy bien a que te refieres con sql dinamico,


he
>> > intentado buscar en los bol y no he encontrado nada
>> >
>> > explico lo que realiza el sp, dicho sp lo utilizo para crear los
> clientes
>> > -parametros de entrada: nombre, telefono, pais, tipo cliente...
>> > - busco en vistas de la misma base de daots (pero que dependen de


otras
>> > bases de datos) valores clave para pais o tipo de cliente (codigo
>> > numerico)
>> > - alguna modificacion de variables internas al sp para crear el


codigo
> del
>> > cliente (este tiene una logica que depende de que tipo de cliente es
>> > - escritura de todos los datos del cliente en una tabla de la misma
>> > base
>> > de
>> > datos
>> > - borrado de contenido y escritura en otra tabla de la misma base de
> datos
>> > tb el codigo de cliente creado
>> > fin
>> >
>> > o sea que las unicas llamadas (selects) que se realizan son a vistas
>> > las
>> > cuales conectan a otras bases de datos
>> >
>> > he provado a quitar permisos (crucecita roja) en todos y cada un de


los
>> > objetos de las otras bases de datos y entonces si funciona, o sea
>> > que
>> > necesita simplemente como usuario de la base de datos aunque no
>> > tenga
>> > ningun
>> > permiso
>> >
>> >
>> > "Alejandro Mesa" wrote in
>> > message
>> > news:
>> >> 1 - Estas usando sql dinamico para acceder esas tablas dentro del
>> >> procedimiento almacenado?
>> >>
>> >> 2 - Estas qualificando todos los objetos referenciados dentro del
>> >> procedimeinto con el nombre del dueño del objeto?, por ejemplo
>> > [dbo].[orders]
>> >>
>> >>
>> >> AMB
>> >>
>> >> ".·:m·a·r·l·a:·." wrote:
>> >>
>> >> > Hola a todos:
>> >> >
>> >> > quisiera preguntar si hay alguna opcion de inpersonificar el


acesso
>> >> > a
>> > los
>> >> > store procedures, creo que se dice a si
>> >> >
>> >> > el caso es que tengo store procedures que usan tablas y vistas
> incluso
>> > de
>> >> > otras bases de datos (en el mismo server), pero si intento llamar
> este
>> >> > estore procedure desde alguna aplicacion no funciona a menos que
>> > autorize a
>> >> > dicho usuario acesso a las tablas y vistas que usa el store
>> >> > procedure
>> >> >
>> >> > cuando lo que quiero es hace estos store procedures para "dar" al
>> > usuario
>> >> > solamente estos para entrada de daots y vistas para salida de


datos
>> >> >
>> >> > supongo que sea possible, pero no se como hacerlo
>> >> >
>> >> > gracias pro adelantado
>> >> >
>> >> >
>> >> >
>> >> >
>> >
>> >
>>
>>
>
>






Respuesta Responder a este mensaje
#9 .·:m·a·r·l·a:·.
26/05/2005 - 15:08 | Informe spam
muchas gracias

mas bien que querela tener deshabilitada, ocurre que no tengo autorizacion
para habilitarala, si no que tengo que preguntar a alguien mas (politica de
empresa...)

asi que preguntado esta y convencido tambien, con lo cual sere capaz de mis
intenciones pronto

gracias de nuevo y un saludo


"qwalgrande" wrote in message
news:%23I9qxr$
Hola.

Le he dado un buen repaso al tema, que buena falta me hacía. Un par de
ideas.

Realmente, tú necesitas tener habilitada la cadena de propiedad entre


bases
de datos, ya que quieres que un usuario de la base de datos A pueda leer


de
una tabla de la base de datos B, en la que no sólo no tiene permisos, es


que
no existe. ¿Por qué quieres tener la cadena de propiedad deshabilitada
entonces?

Y por otra parte, si no quieres que todo el servidor tenga habilitada la
cadena de propiedad, puedes habilitarlo a nivel de base de datos.

EXEC sp_dboption 'Northwind', 'db chaining', 'true'

qwalgrande

"De lo que ves créete la mitad, de lo que no ves no te creas nada"
V. del V.


".·:m·a·r·l·a:·." escribió en el mensaje
news:
> sigo igual con el mismo problema:
>
> tengo una tabla (tabla_a) en la base de datos db_a
>
> en la base de datos db_b creo una vista tal que:
>
> create view dbo.vista_b
> as
> select filed_b1, field_b2
> from db_a.dbo.tabla_a
> group by filed_b1, field_b2
>
> creo un nuevo usuario con seguridad SQL con la segunda base de datos
> (db_b)
> como predefinida y permisos para ejecutar la vista
>
> todo ello con mi cuenta de usuario de dominio NT con privilegios de
> administrador
>
> en otro pc abro el Enterprise manager y hago login con el nuevo usuario
>
> abro la db_b y ejecuto la vista, error :
>
> [Microsoft][ODBC SQL Server Driver][SQL Server]Server user 'user_abc' is
> not
> valid in database 'db_b'
>
> todo esto con o sin el "cross DB ownership chaining"
>
> vuelvo a la cuenta de administrador y añado ese usuario como usuario de


la
> base de datos (db_a), ningun permiso aun
>
> desde la cuenta 'user_abc', casos :
> con "cross DB ownership chaining" = 1 -> funciona
> con "cross DB ownership chaining" = 0 -> nuevo error:
>
> [Microsoft][ODBC SQL Server Driver][SQL Server]SELECT permission denied


on
> object 'table_a', database 'db_a', owner 'dbo'
>
> para que funcione la vista teniendo "cross DB ownership chaining" = 0


solo
> possible si doy permisos select en la tabla tabla_a
>
> alguna idea ??
>
> decir que tengo removido el usuario guest de ambas bases de datos, no se
> si
> esto interfiere en algo
>
> gracias por adelantado
>
>
> "qwalgrande" wrote in message
> news:
>> Hola.
>>
>> Yo no he sido capaz de reproducir tu problema. Con todos los objetos
> creados
>> por el mismo usuario, creo una vista que accede a dos bases de datos.


Un
>> usuario que sólo tiene acceso a una de las bases de datos (en la que


está
> la
>> vista, evidentemente) y exclusivamente con permisos de lectura sobre la
>> vista, y no sobre las tablas, puede realizar consultas sin problema,
>> independientemente del valor de la propiedad "Cross DB Ownership
> Chaining".
>>
>> Descartado esto, ¿podrías crear un nuevo login, darle acceso sólo a la
> base
>> de datos en la que está el procedimiento almacenado y darle permisos de
>> ejecución exclusivamente sobre el procedimiento? Sería para descartar


la
>> pertenencia del usuario a grupos, roles y demás. ¿Podrías copiarnos el
>> mensaje de error tal cual lo devuelve el servidor?
>>
>> qwalgrande
>>
>>
>>
>> ".·:m·a·r·l·a:·." escribió en el mensaje
>> news:
>> > Hola de nuevo
>> >
>> > uso 2000 SP3 y me he leido el articulo que comentas
>> >
>> > he experimentado tambien que si en una base de datos hago referencia


a
>> > tablas de otras bases de datos en el mismo server me da error de
> permisos
>> > simepre que no tenga el usuario en ambas bases de datos y con


permisos
>> > "VIEW" a la tabla usada
>> >
>> > entiendo pues que debo ejecutar EXEC sp_configure 'Cross DB Ownership
>> > Chaining', '1' para quela referencia otraBaseDeDatos.dbo.nombreTabla
>> > funcione sin problemas, no es asi ?
>> >
>> > gracias por el tiempo empleado
>> >
>> > "qwalgrande" wrote in message
>> > news:
>> >> Hola.
>> >>
>> >> 2 comentarios al respecto de lo que comentas.
>> >>
>> >> 1.- Échale un ojo a este link
>> >>
>> >
>


http://msdn.microsoft.com/library/d..._1cj5.asp,
>> >> en el que se habla de ownership chaining (no sé si traducirlo como
> cadena
>> > de
>> >> propiedad).
>> >> 2.- La impersonación de stores procedures viene implementada en SQL
>> >> Server
>> >> 2005, con lo que podrás definir las credenciales con las que


ejecutar
>> >> determinados procedimientos almacenados (es decir, yo que soy usu1
>> >> ejecuto
>> >> este sp como si fuera usu2). Es un concepto curioso y requiere de


unos
>> >> permisos elevados para ser usado, pero por la novedad es cuando


menos
>> >> interesante. Al menos, a mí me lo ha parecido.
>> >>
>> >> qwalgrande
>> >>
>> >>
>> >> ".·:m·a·r·l·a:·." escribió en el mensaje
>> >> news:OH%
>> >> >2 - todas las llamadas a vistas y tablas estan tal que
>> > dbo.nombredelavista
>> >> >
>> >> > 1 - perdona pero no se muy bien a que te refieres con sql


dinamico,
> he
>> >> > intentado buscar en los bol y no he encontrado nada
>> >> >
>> >> > explico lo que realiza el sp, dicho sp lo utilizo para crear los
>> > clientes
>> >> > -parametros de entrada: nombre, telefono, pais, tipo cliente...
>> >> > - busco en vistas de la misma base de daots (pero que dependen de
> otras
>> >> > bases de datos) valores clave para pais o tipo de cliente (codigo
>> >> > numerico)
>> >> > - alguna modificacion de variables internas al sp para crear el
> codigo
>> > del
>> >> > cliente (este tiene una logica que depende de que tipo de cliente


es
>> >> > - escritura de todos los datos del cliente en una tabla de la


misma
>> >> > base
>> >> > de
>> >> > datos
>> >> > - borrado de contenido y escritura en otra tabla de la misma base


de
>> > datos
>> >> > tb el codigo de cliente creado
>> >> > fin
>> >> >
>> >> > o sea que las unicas llamadas (selects) que se realizan son a


vistas
>> >> > las
>> >> > cuales conectan a otras bases de datos
>> >> >
>> >> > he provado a quitar permisos (crucecita roja) en todos y cada un


de
> los
>> >> > objetos de las otras bases de datos y entonces si funciona, o sea
>> >> > que
>> >> > necesita simplemente como usuario de la base de datos aunque no
>> >> > tenga
>> >> > ningun
>> >> > permiso
>> >> >
>> >> >
>> >> > "Alejandro Mesa" wrote


in
>> >> > message
>> >> > news:
>> >> >> 1 - Estas usando sql dinamico para acceder esas tablas dentro del
>> >> >> procedimiento almacenado?
>> >> >>
>> >> >> 2 - Estas qualificando todos los objetos referenciados dentro del
>> >> >> procedimeinto con el nombre del dueño del objeto?, por ejemplo
>> >> > [dbo].[orders]
>> >> >>
>> >> >>
>> >> >> AMB
>> >> >>
>> >> >> ".·:m·a·r·l·a:·." wrote:
>> >> >>
>> >> >> > Hola a todos:
>> >> >> >
>> >> >> > quisiera preguntar si hay alguna opcion de inpersonificar el
> acesso
>> >> >> > a
>> >> > los
>> >> >> > store procedures, creo que se dice a si
>> >> >> >
>> >> >> > el caso es que tengo store procedures que usan tablas y vistas
>> > incluso
>> >> > de
>> >> >> > otras bases de datos (en el mismo server), pero si intento


llamar
>> > este
>> >> >> > estore procedure desde alguna aplicacion no funciona a menos


que
>> >> > autorize a
>> >> >> > dicho usuario acesso a las tablas y vistas que usa el store
>> >> >> > procedure
>> >> >> >
>> >> >> > cuando lo que quiero es hace estos store procedures para "dar"


al
>> >> > usuario
>> >> >> > solamente estos para entrada de daots y vistas para salida de
> datos
>> >> >> >
>> >> >> > supongo que sea possible, pero no se como hacerlo
>> >> >> >
>> >> >> > gracias pro adelantado
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >> >
>> >> >
>> >> >
>> >>
>> >>
>> >
>> >
>>
>>
>
>


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