lunes, 30 de enero de 2017

Permisos y Usuarios en SQL Server - 2 de 2



  • Conceder más permisos al mismo usuario :
Ahora vamos a conceder más permisos al usuario Pepe, lo vamos a incluir en el rol db_datawriter para que además pueda realizar consultas de acción sobre la tabla (Insert, Update y Delete).
Para ello debemos iniciar sesión con el usuario principal para poder otorgar permisos. Ubicamos al usuario Pepe en la base de datos Hospital > Seguridad. Clic derecho sobre el usuario y seleccionamos propiedades.


En la página MemberShip (Afiliación) marcar el check db_datawriter y clic en Aceptar.


Volvemos a conectarnos en el analizador de consultas con el usuario Pepe y ya tendríamos los permisos para insertar, borrar o actualizar:

Insert into dept (Dept_no, DNombre, Loc) values (50,'EDICION','ELCHE')


Los Permisos Select siguen igual y se mantienen.

Select * from Dept



delete from dept where Loc = 'ELCHE'

  • Creación de un grupo de funciones para un grupo de usuarios con las mismas características.
Realizamos clic en Hospital_BD > Seguridad > Roles > Roles de Base de Datos > Nuevo rol de base de datos.


Escribimos el nombre de nuestra nuevo ROL, no le damos todavía los usuarios ni los permisos, esto es solamente para crearla. Clic en Aceptar.



Una vez creado el rol, lo seleccionamos con el botón derecho y clic en propiedades.



Una vez aquí seleccionamos la página securables, y ya podremos otorgar permisos de escritura, selección o lo que queramos en el rol. Después podremos añadir los usuarios que queramos que estén dentro de esa función.




Para este ejemplo se otorgaron (GRANT) los siguientes permisos :


Los permisos que tiene el usuario siguen actuando, y además hereda los permisos que tiene del Rol Becarios. Los permisos siguen funcionando a no ser que se le deniegue explicitamente el acceso a un permiso sobre el Rol, entonces el usuario no puede ejecutar la orden si está dentro del Rol.

Agregamos al usuario Pepe al Rol Becarios. Clic en Aceptar.



Luego le negamos (DENY) el permiso Select para la tabla Plantilla.



En este caso el usuario PEPE tiene los permisos de Select y consultas de acción sobre la base de datos Hospital. Pero el usuario está dentro del Rol Becarios y le hemos denegado el acceso a realizar un Select sobre la tabla Plantilla.
Al realizar el Select sobre la tabla plantilla tiene los permisos denegados por ser miembro del Rol Becarios. Se le niega el acceso expresamente sobre acciones en una tabla y no importa los permisos que tenga el propio usuario.

select * from plantilla

Servidor: mensaje 229, nivel 14, estado 5, línea 1
Permiso SELECT denegado para el objeto 'PLANTILLA', base de datos 'Hospital', propietario 'dbo'.

Si denegamos el permiso Select sobre la tabla Plantilla en el propio usuario, prevalece el usuario sobre el Rol, las clausulas que deniegan acceso a la base de datos prevalecen sobre las que dan permiso.

Usuario Pepe:



Rol Becarios:


select * from plantilla

Servidor: mensaje 229, nivel 14, estado 5, línea 1
Permiso SELECT denegado para el objeto 'PLANTILLA', base de datos 'Hospital', propietario 'dbo'.



Espero haber ayudado en algo. Hasta la próxima oportunidad!










  

No hay comentarios:

Publicar un comentario