Además
de estos roles fijos, es posible gestionar otros roles. Es conveniente un
nombre único para definir un rol y posteriormente asignar uno o varios permisos
respetando un procedimiento en todo punto similar al utilizado para asignar los
permisos a los usuarios. Estos roles se pueden definir en tres niveles:
· Servidor.
· Base
de datos.
· Aplicación.
Los
roles permiten una gestión simplificada de los privilegios, ya que también es
posible definir los perfiles tipo de privilegios y posteriormente asignar a
cada usuario de base de datos uno o varios perfiles tipo con objeto de darle
todas las autorizaciones que necesita para trabajar en la base de datos.
Finalmente,
los Roles, que son simplemente un conjunto de privilegios que se pueden otorgar
a un usuario o a otro Rol. De esa forma se simplifica el trabajo del DBA en
esta tarea. Los roles se crean y se descartan utilizando el mismo proceso
que para realizar cualquier cambio de objeto de base de datos.
Por
default cuando creamos un usuario desde el Enterprise Manager se le asigna el
permiso de connect, lo que permite al usuario conectarse a la BD y crear sus
propios objetos en su propio esquema. De otra manera, debemos asignarlos en
forma manual. Los roles de base de datos simplifican el proceso de gestión
de privilegios, ya que se pueden otorgar privilegios a un rol y luego otorgar
el rol a usuarios. Cuando desee revocar privilegios para un usuario,
simplemente tiene que revocar la autorización de rol del usuario, en vez de
revocar cada privilegio individual.
Para
crear un Rol y asignarlo a un usuario se hace de la siguiente manera:
SQL>
CREATE ROLE appl_dba;
Opcionalmente,
se puede asignar una clave al Rol:
SQL>
SET ROLE appl_dba IDENTIFIED BY app_pwd;
Para
asignar este Rol a un usuario:
SQL>
GRANT appl_dba TO jperez;
Otro
uso común de los roles es asignarle privilegios a nivel de Objetos, por
ejemplo, en una Tabla de Facturas en donde sólo queremos que se puedan hacer
Querys e Inserts:
SQL>
CREATE ROLE consulta;
SQL>
GRANT SELECT,INSERT on analista.factura TO consulta;
Y
finalmente asignamos ese rol con este “perfil” a distintos usuarios finales:
SQL>
GRANT consulta TO ahernandez;
Nota:
Existen algunos roles predefinidos, tales como:
CONNECT,
CREATE SESSION, CREATE TABLE, CREATE VIEW, CREATE SYNONYM, CREATE SEQUENCE,
CREATE DATABASE LINK, CREATE CLUSTER,
ALTER
SESSION, RESOURCE, CREATE PROCEDURE, CREATE SEQUENCE, CREATE TRIGGER, CREATE
TYPE, CREATE CLUSTER, CREATE INDEXTYPE, CREATE OPERATOR SCHEDULER, CREATE ANY
JOB, CREATE JOB, EXECUTE ANY CLASS, EXECUTE ANY PROGRAM, MANAGE SCHEDULER, etc.
DBA:
Tiene la mayoría de los privilegios, no es recomendable asignarlo a usuarios
que no son administradores.
SELECT_CATALOG_ROLE:
No tiene privilegios de sistema, pero tiene cerca de 1600 privilegios de
objeto.
Para
consultar los roles definidos y los privilegios otorgados a través de ellos,
utilice las vistas:
SQL>
select * from DBA_ROLES;
SQL>
select * from DBA_ROLE_PRIVS order by GRANTEE;
No hay comentarios.:
Publicar un comentario