Otorgar Permisos a un Usuario de SQL Server

11/07/2008 - 19:00 por ivan13pocaterra | Informe spam
Saludos Amigos..

Tengo una duda de como dar permisos a un usario en SQL Server 2000.

Agregue un nuevo rol de SQL Server el cual lo denominé "soloLectura",
en ese rol se define que el usuario solo va a tener permisos de
lectura o "Select" sobre 8 tablas y se deniegan los permisos de
"Insert", Update" y "Delete".

Sucede que agrege un nuevo usuario y le asigné el rol de "SoloLectura"
y funciona bastante bien. Debo acotar que las tablas tienen un owner
diferente al usuario de solo lectura.

Pero para que funcione el usuario "SoloLectura" debo colocar "Select *
From owner.MiTabla", pues si coloco la sentencia "Select * From
MiTabla", sin especificar el owner me dice que no encuentra el objeto.

Ahora bien, esto lo quiero hacer porque tengo una aplicación web, el
cual se conecta a la base de datos con un usuario con permisos de
lectura y escritura y yo quiero limitar eso a un usuario de "Solo
Lectura".

Mi problema es que en todas las paginas ASP, las sentencias sql estan
sin especificar el "owner" de la tabla.

Lo que deseo es poder ejecutar mis sentencias "Select" con el usuario
"SoloLectura" sin tener que especificar el owner original de la tabla.

Sin mas que agregar y agradeciendo de antemano la ayuda prestada.

Saludos Cordiales

Ivan

Preguntas similare

Leer las respuestas

#1 Alejandro Mesa
11/07/2008 - 20:10 | Informe spam
Te aconsejo que cambies todas esas sentencias y qualifiques los objetos con
su duenio.

Para que SQL Server chequee los permisos de el usuario que ejecuta la
sentencia, primero debe identificar al objeto que se referencia y los
permisos dados sobre ese objeto. Si no usas el duenio de el objeto para
qualificarlo, entonces SQL Server busca si existe un objeto con ese nombre y
cuyo duenion sea el que ejecuta la sentencia, si no encuentra tal objeto,
entonces busca por "dbo" y si no existe, entonces devuelve error.

Otra cosa importante, es que el plan de ejecucion en el cache no sera
compartido por multiples usuarios. Eso lo puedes ver al seleccionar las filas
desde la tabla virtual syscacheobjects, en la columna [uid]. Si el valor es
-2, entonces ese plan no
depende de que SQL Server tenga que buscar el nombre de el objeto de forma
implicita.


AMB




"" wrote:

Saludos Amigos..

Tengo una duda de como dar permisos a un usario en SQL Server 2000.

Agregue un nuevo rol de SQL Server el cual lo denominé "soloLectura",
en ese rol se define que el usuario solo va a tener permisos de
lectura o "Select" sobre 8 tablas y se deniegan los permisos de
"Insert", Update" y "Delete".

Sucede que agrege un nuevo usuario y le asigné el rol de "SoloLectura"
y funciona bastante bien. Debo acotar que las tablas tienen un owner
diferente al usuario de solo lectura.

Pero para que funcione el usuario "SoloLectura" debo colocar "Select *
From owner.MiTabla", pues si coloco la sentencia "Select * From
MiTabla", sin especificar el owner me dice que no encuentra el objeto.

Ahora bien, esto lo quiero hacer porque tengo una aplicación web, el
cual se conecta a la base de datos con un usuario con permisos de
lectura y escritura y yo quiero limitar eso a un usuario de "Solo
Lectura".

Mi problema es que en todas las paginas ASP, las sentencias sql estan
sin especificar el "owner" de la tabla.

Lo que deseo es poder ejecutar mis sentencias "Select" con el usuario
"SoloLectura" sin tener que especificar el owner original de la tabla.

Sin mas que agregar y agradeciendo de antemano la ayuda prestada.

Saludos Cordiales

Ivan

Respuesta Responder a este mensaje
#2 ivan13pocaterra
12/07/2008 - 05:35 | Informe spam
Hola.. Gracias por tu pronta respuesta.

Pienso que mi mejor opcion es cambiar el owner de las tablas y
objectos al usuario "dbo" y asi no debo cambiar todas las sentencias
sql en las paginas asp que son muchas.

Pues porque lo que quiero hacer es tener un usuario limitado a solo
lectura y ejecuciòn de stored procedure y otro usuario con permisos de
insert y updates sobre las tablas que necesite modificar para su
mantenimiento.

Ahora bien, tengo otra pregunta, es recomendable tener las tabla,
vistas y stored procedures, con owner "dbo". El empleo del usuario
"dbo" como owner de tablas implicaria algún riesgo de seguridad.

Sin mas que agregar y agradeciendo de antemano la ayuda prestada.

Saludos Cordiales

Ivan
Respuesta Responder a este mensaje
#3 Alejandro Mesa
12/07/2008 - 17:31 | Informe spam
Ivan,

Te recomiendo que cambies todas las referencias y uses al menos dos partes [
nombre_duenio].[nombre_objeto]. No por ser [dbo] el duenio, su el plan de
ejecucion de las sentencias sera compartido por todos los usuarios.

No hay ningun problema con que el duenio de las tablas, vistas, sps sea [dbo].


AMB


"" wrote:

Hola.. Gracias por tu pronta respuesta.

Pienso que mi mejor opcion es cambiar el owner de las tablas y
objectos al usuario "dbo" y asi no debo cambiar todas las sentencias
sql en las paginas asp que son muchas.

Pues porque lo que quiero hacer es tener un usuario limitado a solo
lectura y ejecuciòn de stored procedure y otro usuario con permisos de
insert y updates sobre las tablas que necesite modificar para su
mantenimiento.

Ahora bien, tengo otra pregunta, es recomendable tener las tabla,
vistas y stored procedures, con owner "dbo". El empleo del usuario
"dbo" como owner de tablas implicaria algún riesgo de seguridad.

Sin mas que agregar y agradeciendo de antemano la ayuda prestada.

Saludos Cordiales

Ivan

Respuesta Responder a este mensaje
#4 ivan13pocaterra
13/07/2008 - 03:10 | Informe spam
Gracias Alejandro, por tu valiosa colaboración. Cada dia aprendo mas
en estos foros.!

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