Ayuda con usuarios y permisos

01/11/2004 - 18:37 por Claudio Valdés | Informe spam
Hola a todos:

Tengo una duda con respecto a como configurar los usuarios y sus permisos
para la siguiente situación

Existen 5 Bases y todas tiene las mismas tablas

yo cree un procedimiento almacenado en la base de datos Master
sp_cargaMaestro el cual se puede ejecutar desde cualquier base, la idea es
pasarle el nombre de la base como parametro y que el procedimiento ejecute
las acciones correspondientes en una base en particular, la que se indique
en el parametro, mi duda es:

Este Sp se ejecutará desde una página Web y no se donde crear el usuario y
que permisos debe tener para que pueda trabajar en cualquiera de las 5 bases

me indicaron que creara un usuario en la base de datos Master y que le
entregara permisos de ejecución sobre el sp_cargaMaestro, pero me reclama
debido a que este usuario no tiene permisos, por ejemplo sobre la tabla
productos en la Base1

Desde ya muchas gracias por sus consejos

Atte,
Claudio Valdés

Preguntas similare

Leer las respuestas

#6 Claudio Valdés
01/11/2004 - 23:02 | Informe spam
Hola:

Lo siguiente es un ejemplo pequeño que estoy utilizando para verificar los
permisos

1.- creo el Sp en la base de datos Master, este es solo un ejemplo

Create procedure sp_cargaMaestro
@Base nvarchar(10)
As

Declare @sql nvarchar(200)
Set @sql='Select * from ' + @Base + '..productos'
exec (@sql)

Go

2.- Creo un Login y los usuario en las 5 bases, los que deben tener permisos
de lectura sobre la tabla productos, porque de lo contrario
me arroja el error

Si el Sp realiza DELETE, INSERT o UPDATE debo asignarle a cada usuario los
permisos correspondientes

Desde ya muchas gracias por la ayuda

Atte,
Claudio Valdés


"Maxi" escribió en el mensaje
news:#
Claudio en las bdd los vas a tener que crear sin ninguna duda!! ahora eso


no
implica que dentro de la BDD tengan accesos a escritura y lectura


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Claudio Valdés" escribió en el mensaje
news:
> Muchas gracias por la ayuda
>
> La unica forma en que me funciona es creando el mismo usuario en todas


las
> 5
> bases, menos en la Master, como bd_owner y luego me conecto a la base de
> datos Master y ejecuto el Sp, pero no se si esto sea lo correcto y a mi


me
> gustaría crear un usuario en la base de datos Master y entregarle los
> permisos de Execute sobre el Sp, y no tener que asignar los permisos de
> db_owner al usuario sobre cada base, pero no se si no se puede o estoy
> haciendo algo mal
>
> Atte,
> Claudio Valdés
>
>
> "Maxi" escribió en el mensaje
> news:
>> Claudio, hoy cuando llegue a casa te armo un ejemplo
>>
>>
>> Salu2
>> Maxi
>> Buenos Aires - Argentina
>> Desarrollador Microsoft 3 Estrellas .NET
>> Nunca consideres el estudio como una obligación sino como
>> una oportunidad para penetrar en el bello y maravillosos
>> mundo del saber.
>> - Albert Einstein
>>
>>
>>
>> "Claudio Valdés" escribió en el mensaje
>> news:
>> > Lo que pasa es que no entiendo y estoy un poco perdido
>> >
>> > Cree un usuario, llamado "user", en la base de datos Master con
>> > permisos
>> > de
>> > ejecución del Sp, y me reclamo por no tener permisos en la BASE1,


luego
>> > cree
>> > el usuario "user" en la base de datos Base1 y le quite los permisos,
> pero
>> > me
>> > arrojo el mismo error
>> >
>> > Server: Msg 229, Level 14, State 5, Procedure sp_prueba, Line 3
>> > SELECT permission denied on object 'Productos', database 'BASE1',


owner
>> > 'dbo'.
>> >
>> > Porfavor me puedes explicar can más detalle o si es posible darme
>> > alguna
>> > referencia, porque esto es urgente
>> >
>> > Atte,
>> > Claudio Valdés
>> >
>> >
>> > "Maxi" escribió en el mensaje
>> > news:e#
>> >> Claudio creo que este tema lo vimos ayer no ;-)
>> >>
>> >> Te fijaste bien que los usuarios esten en las BDD correspondientes?
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >> Buenos Aires - Argentina
>> >> Desarrollador Microsoft 3 Estrellas .NET
>> >> Nunca consideres el estudio como una obligación sino como
>> >> una oportunidad para penetrar en el bello y maravillosos
>> >> mundo del saber.
>> >> - Albert Einstein
>> >>
>> >>
>> >>
>> >> "Claudio Valdés" escribió en el mensaje
>> >> news:
>> >> > Hola a todos:
>> >> >
>> >> > Tengo una duda con respecto a como configurar los usuarios y sus
>> > permisos
>> >> > para la siguiente situación
>> >> >
>> >> > Existen 5 Bases y todas tiene las mismas tablas
>> >> >
>> >> > yo cree un procedimiento almacenado en la base de datos Master
>> >> > sp_cargaMaestro el cual se puede ejecutar desde cualquier base, la
> idea
>> > es
>> >> > pasarle el nombre de la base como parametro y que el procedimiento
>> > ejecute
>> >> > las acciones correspondientes en una base en particular, la que se
>> > indique
>> >> > en el parametro, mi duda es:
>> >> >
>> >> > Este Sp se ejecutará desde una página Web y no se donde crear el
>> >> > usuario
>> > y
>> >> > que permisos debe tener para que pueda trabajar en cualquiera de


las
> 5
>> >> > bases
>> >> >
>> >> > me indicaron que creara un usuario en la base de datos Master y


que
> le
>> >> > entregara permisos de ejecución sobre el sp_cargaMaestro, pero me
>> > reclama
>> >> > debido a que este usuario no tiene permisos, por ejemplo sobre la
> tabla
>> >> > productos en la Base1
>> >> >
>> >> > Desde ya muchas gracias por sus consejos
>> >> >
>> >> > Atte,
>> >> > Claudio Valdés
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> Outgoing mail is certified Virus Free.
>> >> Checked by AVG anti-virus system (http://www.grisoft.com).
>> >> Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004
>> >>
>> >>
>> >
>> >
>>
>>
>>
>> Outgoing mail is certified Virus Free.
>> Checked by AVG anti-virus system (http://www.grisoft.com).
>> Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004
>>
>>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004


Respuesta Responder a este mensaje
#7 Maxi
02/11/2004 - 14:46 | Informe spam
Claudio!! esto es asi porque estas utilizando SQL dinamico (sp_executesql)
con lo cual la seguridad se va a los caños :(

Aca ya tenes una de las cosas por las cuales muchos aqui decimos que es muy
malo usar SQL-dinamico ;-)

Ahora hace esta prueba

1) Saca el SQL dinamico
2) Hace un simple select a una tabla de una BDD

Asegurate que el usuario solo tenga permisos para ejecutar el SP y no tenga
ningun permiso sobre la tabla que estas haciendo el Select!!

Proba de ejecutar el SP y veras que pasa ;-)




Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Claudio Valdés" escribió en el mensaje
news:%23bpM$
Hola:

Lo siguiente es un ejemplo pequeño que estoy utilizando para verificar los
permisos

1.- creo el Sp en la base de datos Master, este es solo un ejemplo

Create procedure sp_cargaMaestro
@Base nvarchar(10)
As

Declare @sql nvarchar(200)
Set @sql='Select * from ' + @Base + '..productos'
exec (@sql)

Go

2.- Creo un Login y los usuario en las 5 bases, los que deben tener
permisos
de lectura sobre la tabla productos, porque de lo contrario
me arroja el error

Si el Sp realiza DELETE, INSERT o UPDATE debo asignarle a cada usuario los
permisos correspondientes

Desde ya muchas gracias por la ayuda

Atte,
Claudio Valdés


"Maxi" escribió en el mensaje
news:#
Claudio en las bdd los vas a tener que crear sin ninguna duda!! ahora eso


no
implica que dentro de la BDD tengan accesos a escritura y lectura


Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Claudio Valdés" escribió en el mensaje
news:
> Muchas gracias por la ayuda
>
> La unica forma en que me funciona es creando el mismo usuario en todas


las
> 5
> bases, menos en la Master, como bd_owner y luego me conecto a la base
> de
> datos Master y ejecuto el Sp, pero no se si esto sea lo correcto y a mi


me
> gustaría crear un usuario en la base de datos Master y entregarle los
> permisos de Execute sobre el Sp, y no tener que asignar los permisos de
> db_owner al usuario sobre cada base, pero no se si no se puede o estoy
> haciendo algo mal
>
> Atte,
> Claudio Valdés
>
>
> "Maxi" escribió en el mensaje
> news:
>> Claudio, hoy cuando llegue a casa te armo un ejemplo
>>
>>
>> Salu2
>> Maxi
>> Buenos Aires - Argentina
>> Desarrollador Microsoft 3 Estrellas .NET
>> Nunca consideres el estudio como una obligación sino como
>> una oportunidad para penetrar en el bello y maravillosos
>> mundo del saber.
>> - Albert Einstein
>>
>>
>>
>> "Claudio Valdés" escribió en el mensaje
>> news:
>> > Lo que pasa es que no entiendo y estoy un poco perdido
>> >
>> > Cree un usuario, llamado "user", en la base de datos Master con
>> > permisos
>> > de
>> > ejecución del Sp, y me reclamo por no tener permisos en la BASE1,


luego
>> > cree
>> > el usuario "user" en la base de datos Base1 y le quite los permisos,
> pero
>> > me
>> > arrojo el mismo error
>> >
>> > Server: Msg 229, Level 14, State 5, Procedure sp_prueba, Line 3
>> > SELECT permission denied on object 'Productos', database 'BASE1',


owner
>> > 'dbo'.
>> >
>> > Porfavor me puedes explicar can más detalle o si es posible darme
>> > alguna
>> > referencia, porque esto es urgente
>> >
>> > Atte,
>> > Claudio Valdés
>> >
>> >
>> > "Maxi" escribió en el mensaje
>> > news:e#
>> >> Claudio creo que este tema lo vimos ayer no ;-)
>> >>
>> >> Te fijaste bien que los usuarios esten en las BDD correspondientes?
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >> Buenos Aires - Argentina
>> >> Desarrollador Microsoft 3 Estrellas .NET
>> >> Nunca consideres el estudio como una obligación sino como
>> >> una oportunidad para penetrar en el bello y maravillosos
>> >> mundo del saber.
>> >> - Albert Einstein
>> >>
>> >>
>> >>
>> >> "Claudio Valdés" escribió en el mensaje
>> >> news:
>> >> > Hola a todos:
>> >> >
>> >> > Tengo una duda con respecto a como configurar los usuarios y sus
>> > permisos
>> >> > para la siguiente situación
>> >> >
>> >> > Existen 5 Bases y todas tiene las mismas tablas
>> >> >
>> >> > yo cree un procedimiento almacenado en la base de datos Master
>> >> > sp_cargaMaestro el cual se puede ejecutar desde cualquier base,
>> >> > la
> idea
>> > es
>> >> > pasarle el nombre de la base como parametro y que el
>> >> > procedimiento
>> > ejecute
>> >> > las acciones correspondientes en una base en particular, la que
>> >> > se
>> > indique
>> >> > en el parametro, mi duda es:
>> >> >
>> >> > Este Sp se ejecutará desde una página Web y no se donde crear el
>> >> > usuario
>> > y
>> >> > que permisos debe tener para que pueda trabajar en cualquiera de


las
> 5
>> >> > bases
>> >> >
>> >> > me indicaron que creara un usuario en la base de datos Master y


que
> le
>> >> > entregara permisos de ejecución sobre el sp_cargaMaestro, pero me
>> > reclama
>> >> > debido a que este usuario no tiene permisos, por ejemplo sobre la
> tabla
>> >> > productos en la Base1
>> >> >
>> >> > Desde ya muchas gracias por sus consejos
>> >> >
>> >> > Atte,
>> >> > Claudio Valdés
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> Outgoing mail is certified Virus Free.
>> >> Checked by AVG anti-virus system (http://www.grisoft.com).
>> >> Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004
>> >>
>> >>
>> >
>> >
>>
>>
>>
>> Outgoing mail is certified Virus Free.
>> Checked by AVG anti-virus system (http://www.grisoft.com).
>> Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004
>>
>>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004











Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 25/10/2004
Respuesta Responder a este mensaje
#8 Claudio Valdés
03/11/2004 - 01:26 | Informe spam
Hola:

Lo que pasa es que tengo el Sp_CargaMaestro en la Base de datos Master y
cuando creo el usuario en la BASE1 no puede indicarle que tiene permisos de
ejecución sobre ese Sp en particular, por lo tanto al correrlo me reclama
que no tiene permisos sobre los objetos de la BASE1

Lo que no se si esta correcto lo que estoy haciendo y lo estoy haciendo
dinamico debido a que debo pasarle como parametro la base de datos sobre la
cual se ejecutaran las transacciones

Muchas gracias por atender mis consultas

Atte,
Claudio Valdés

"Maxi" escribió en el mensaje
news:
Claudio!! esto es asi porque estas utilizando SQL dinamico (sp_executesql)
con lo cual la seguridad se va a los caños :(

Aca ya tenes una de las cosas por las cuales muchos aqui decimos que es


muy
malo usar SQL-dinamico ;-)

Ahora hace esta prueba

1) Saca el SQL dinamico
2) Hace un simple select a una tabla de una BDD

Asegurate que el usuario solo tenga permisos para ejecutar el SP y no


tenga
ningun permiso sobre la tabla que estas haciendo el Select!!

Proba de ejecutar el SP y veras que pasa ;-)




Salu2
Maxi
Buenos Aires - Argentina
Desarrollador Microsoft 3 Estrellas .NET
Nunca consideres el estudio como una obligación sino como
una oportunidad para penetrar en el bello y maravillosos
mundo del saber.
- Albert Einstein



"Claudio Valdés" escribió en el mensaje
news:%23bpM$
> Hola:
>
> Lo siguiente es un ejemplo pequeño que estoy utilizando para verificar


los
> permisos
>
> 1.- creo el Sp en la base de datos Master, este es solo un ejemplo
>
> Create procedure sp_cargaMaestro
> @Base nvarchar(10)
> As
>
> Declare @sql nvarchar(200)
> Set @sql='Select * from ' + @Base + '..productos'
> exec (@sql)
>
> Go
>
> 2.- Creo un Login y los usuario en las 5 bases, los que deben tener
> permisos
> de lectura sobre la tabla productos, porque de lo contrario
> me arroja el error
>
> Si el Sp realiza DELETE, INSERT o UPDATE debo asignarle a cada usuario


los
> permisos correspondientes
>
> Desde ya muchas gracias por la ayuda
>
> Atte,
> Claudio Valdés
>
>
> "Maxi" escribió en el mensaje
> news:#
>> Claudio en las bdd los vas a tener que crear sin ninguna duda!! ahora


eso
> no
>> implica que dentro de la BDD tengan accesos a escritura y lectura
>>
>>
>> Salu2
>> Maxi
>> Buenos Aires - Argentina
>> Desarrollador Microsoft 3 Estrellas .NET
>> Nunca consideres el estudio como una obligación sino como
>> una oportunidad para penetrar en el bello y maravillosos
>> mundo del saber.
>> - Albert Einstein
>>
>>
>>
>> "Claudio Valdés" escribió en el mensaje
>> news:
>> > Muchas gracias por la ayuda
>> >
>> > La unica forma en que me funciona es creando el mismo usuario en


todas
> las
>> > 5
>> > bases, menos en la Master, como bd_owner y luego me conecto a la base
>> > de
>> > datos Master y ejecuto el Sp, pero no se si esto sea lo correcto y a


mi
> me
>> > gustaría crear un usuario en la base de datos Master y entregarle los
>> > permisos de Execute sobre el Sp, y no tener que asignar los permisos


de
>> > db_owner al usuario sobre cada base, pero no se si no se puede o


estoy
>> > haciendo algo mal
>> >
>> > Atte,
>> > Claudio Valdés
>> >
>> >
>> > "Maxi" escribió en el mensaje
>> > news:
>> >> Claudio, hoy cuando llegue a casa te armo un ejemplo
>> >>
>> >>
>> >> Salu2
>> >> Maxi
>> >> Buenos Aires - Argentina
>> >> Desarrollador Microsoft 3 Estrellas .NET
>> >> Nunca consideres el estudio como una obligación sino como
>> >> una oportunidad para penetrar en el bello y maravillosos
>> >> mundo del saber.
>> >> - Albert Einstein
>> >>
>> >>
>> >>
>> >> "Claudio Valdés" escribió en el mensaje
>> >> news:
>> >> > Lo que pasa es que no entiendo y estoy un poco perdido
>> >> >
>> >> > Cree un usuario, llamado "user", en la base de datos Master con
>> >> > permisos
>> >> > de
>> >> > ejecución del Sp, y me reclamo por no tener permisos en la BASE1,
> luego
>> >> > cree
>> >> > el usuario "user" en la base de datos Base1 y le quite los


permisos,
>> > pero
>> >> > me
>> >> > arrojo el mismo error
>> >> >
>> >> > Server: Msg 229, Level 14, State 5, Procedure sp_prueba, Line 3
>> >> > SELECT permission denied on object 'Productos', database 'BASE1',
> owner
>> >> > 'dbo'.
>> >> >
>> >> > Porfavor me puedes explicar can más detalle o si es posible darme
>> >> > alguna
>> >> > referencia, porque esto es urgente
>> >> >
>> >> > Atte,
>> >> > Claudio Valdés
>> >> >
>> >> >
>> >> > "Maxi" escribió en el mensaje
>> >> > news:e#
>> >> >> Claudio creo que este tema lo vimos ayer no ;-)
>> >> >>
>> >> >> Te fijaste bien que los usuarios esten en las BDD


correspondientes?
>> >> >>
>> >> >>
>> >> >> Salu2
>> >> >> Maxi
>> >> >> Buenos Aires - Argentina
>> >> >> Desarrollador Microsoft 3 Estrellas .NET
>> >> >> Nunca consideres el estudio como una obligación sino como
>> >> >> una oportunidad para penetrar en el bello y maravillosos
>> >> >> mundo del saber.
>> >> >> - Albert Einstein
>> >> >>
>> >> >>
>> >> >>
>> >> >> "Claudio Valdés" escribió en el mensaje
>> >> >> news:
>> >> >> > Hola a todos:
>> >> >> >
>> >> >> > Tengo una duda con respecto a como configurar los usuarios y


sus
>> >> > permisos
>> >> >> > para la siguiente situación
>> >> >> >
>> >> >> > Existen 5 Bases y todas tiene las mismas tablas
>> >> >> >
>> >> >> > yo cree un procedimiento almacenado en la base de datos Master
>> >> >> > sp_cargaMaestro el cual se puede ejecutar desde cualquier base,
>> >> >> > la
>> > idea
>> >> > es
>> >> >> > pasarle el nombre de la base como parametro y que el
>> >> >> > procedimiento
>> >> > ejecute
>> >> >> > las acciones correspondientes en una base en particular, la que
>> >> >> > se
>> >> > indique
>> >> >> > en el parametro, mi duda es:
>> >> >> >
>> >> >> > Este Sp se ejecutará desde una página Web y no se donde crear


el
>> >> >> > usuario
>> >> > y
>> >> >> > que permisos debe tener para que pueda trabajar en cualquiera


de
> las
>> > 5
>> >> >> > bases
>> >> >> >
>> >> >> > me indicaron que creara un usuario en la base de datos Master y
> que
>> > le
>> >> >> > entregara permisos de ejecución sobre el sp_cargaMaestro, pero


me
>> >> > reclama
>> >> >> > debido a que este usuario no tiene permisos, por ejemplo sobre


la
>> > tabla
>> >> >> > productos en la Base1
>> >> >> >
>> >> >> > Desde ya muchas gracias por sus consejos
>> >> >> >
>> >> >> > Atte,
>> >> >> > Claudio Valdés
>> >> >> >
>> >> >> >
>> >> >>
>> >> >>
>> >> >>
>> >> >> Outgoing mail is certified Virus Free.
>> >> >> Checked by AVG anti-virus system (http://www.grisoft.com).
>> >> >> Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004
>> >> >>
>> >> >>
>> >> >
>> >> >
>> >>
>> >>
>> >>
>> >> Outgoing mail is certified Virus Free.
>> >> Checked by AVG anti-virus system (http://www.grisoft.com).
>> >> Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004
>> >>
>> >>
>> >
>> >
>>
>>
>>
>> Outgoing mail is certified Virus Free.
>> Checked by AVG anti-virus system (http://www.grisoft.com).
>> Version: 6.0.781 / Virus Database: 527 - Release Date: 24/10/2004
>>
>>
>
>



Outgoing mail is certified Virus Free.
Checked by AVG anti-virus system (http://www.grisoft.com).
Version: 6.0.781 / Virus Database: 527 - Release Date: 25/10/2004


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