3.5 Roles
Un rol es una colección de privilegios del sistema y de objetos que se otorgan a usuarios y a otras tareas.
Gracias a los roles se
facilita la asignación de privilegios a los usuarios. Un usuario puede tener
asignados varios roles y viceversa.
Oracle dispone de muchos roles
predeterminados mientras que MySQL no los soporta.
Para asignar o retirar
privilegios de un rol se utiliza una sentencia similar a cuando se desea
asignar o retirar privilegios a un usuario.
- CREATE
ROLE role;
- GRANT
SELECT, INSERT, UPDATE, DELETE ON table TO user;
Para asignar un rol a un
usuario se utiliza la siguiente sentencia:
- GRANT
role_name TO
user;
Para eliminar un rol se
utiliza se utiliza la sentencia:
- DROP
ROLE role_name;
Debido a que es una estructura
definida y uno un dato almacenado se utiliza DROP.
En Oracle, los roles
predefinidos y más utilizados son CONNECT, RESOURCE y DBA.
Los
Roles 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.
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.
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 a Hernández;
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;
Importancia
al momento de crear una base de datos
Es
importante que a la hora de crear una BD el DBA configure y asigne el espacio
de disco que ocupara la BD para que así no haya complicaciones en caso de que
la cantidad de información almacenada sea en volumen muy grande y llegara a
faltar espacio en el disco para ese volumen de información, así como la
importancia de tener bien administrada la BD ya que de no ser así pueden
existir errores que causarían el colapso de dicho BD.
Porque
el administrador debe contemplar la configuración y administración del espacio
El DBA
debe de contemplar estos aspectos ya que de lo contrario no estaría bien el BD
ya que no se tiene considerado el espacio de disco que se ocupara y en dado
caso que se requiera más espacio no se podría tener más espacio ya que en un
principio no se consideró ni la configuración ni la administración del espacio
en disco, se tendría que volver a generar un BD con las especificaciones
necesarios para empresa causando perdidas de dinero y tiempo para dicha empresa
Comentarios
Publicar un comentario