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
 

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

Preguntas similares