Está en la página 1de 11

22/10/ 20 12

ADMINISTRACIN DE PRIVILEGIOS Y ROLES

PRIVILEGIOS Y ROLES
Privilegio es un derecho para ejecutar un tipo particular de sentencia SQL para acceder un objeto de otro usuario Dos maneras de hacerlo: explcitamente (usuario y objeto especfico) a travs de un rol (conjunto nominado de privilegios) Dos tipos de privilegios: del sistema y de los objetos del schema Un privilegio del sistema es el derecho a realizar una accin particular, particular, o realizar una accin sobre cualquier objeto de un tipo particular. Ejemplos: los privilegios para crear tablespaces para borrar filas de cualquier (any) tabla de una base de datos Hay mas de 80 privilegios del sistema

22/10/ 20 12

PRIVILEGIOS DE OBJETO
Un privilegio de objeto es un derecho a realizar una accin particular sobre un objeto especfico (tabla, vista, secuencia, procedimiento, funcin o paquete) Algunos objetos como clusters, ndices, triggers y vnculos BD (database links) no se asocian a privilegios de objetos, objetos, son controlados por privilegios del sistema Un objeto del schema y su sinnimo son equivalentes respecto de los privilegios. Un usuario posee automticamente todos los privilegios sobre los objetos de su schema y puede darselos (GRANT) a cualquier otro usuario rol. Asignndole GRANT OPTION estos usuarios pueden dar estos privilegios a otros usuarios.

PRIVILEGIOS DE OBJETOS
ALTER: permite modificar la estructura interna de un objeto. No implica que permite al usuario a modificar el contenido de los datos. Se pueden agregar modificar columnas (no eliminar). DELETE: permite eliminar una mas filas de datos de los objetos EXECUTE: permite al usuario ejecutar un paquete procedimiento funcin INDEX: permite crear un ndice en la tabla. Notar que no es suficiente contar con un privilegio SELECT INSERT: permite agregar una mas filas de datos de los objetos SELECT: permite leer filas desde los objetos usando sentencias SELECT REFERENCES: permite crear o alterar otra tabla que referencia esta como clave fornea

22/10/ 20 12

DIAGRAMA DE PRIVILEGIOS DE OBJETOS


INDICE Index Alter TABLA References Insert Select Update Update Select Delete VISTA Insert Delete

Execute

PROCEDIMIENTO

Select

SECUENCIA

Alter

PRIVILEGIOS: CATEGORIAS FUNCIONALES


Usuario: privilegios para acceder al sistema pero no para crear objetos Desarrollador: para crear objetos en la Base de Datos Privilegios any any: any: privilegios que se aplican no solo a objetos que uno genera sino tambin a objetos de otros usuarios. Se aplican para DBAs para desarrolladores experimentados Mantenimiento: se relacionan con el cuidado y la produccin de la Base de Datos. Asignados por lo general a DBAs staff de soporte de computacin. Monitoreo: son los que estn atentos con lo que pasa en la Base de Datos. Asignados por lo general a DBAs

22/10/ 20 12

PRIVILEGIOS DEL SISTEMA


BASE de DATOS TABLESPACE Create Table Tablas Create any table Alter any table Drop any table Indices Create any table index Alter any table index Drop any table index Alter Database Create Tablespace Alter Tablespace Manage Tablespace Drop Tablespace

Create view Vista Create any view Drop any view

Create sequence Secuencias Create any sequence Alter any sequence Drop any sequence

Create procedure Proced. Create any procedure Alter any procedure Drop any procedure

Create synonym Sinnimos Create any synonym Alter any synonym Drop any synonym

Sinnimos Pblicos

Create public synonym Drop public synonym

Objetos

Create any type Drop any library

FUNCIONES Y SUS PRIVILEGIOS


Usuarios comunes: CREATE SESSION, ALTER SESSION Desarrolladores: La mayora de los CREATE y DROP. Hay que ser cuidadosos en la privilegios que se brindan a este grupo DBA: los DBA deben tener la mayora de los privilegios any. Algunos privilegios no tan conocidos: ANALYZE ANY, AUDIT ANY, BACKUP ANY TABLE, LOCK ANY TABLE, COMMENT ANY TABLE Mantenimiento de BD: CREATE, ALTER, DROP PROFILE; CREATE ROLE; CREATE, ALTER, DROP ROLLBACK SEGMENT; CREATE, ALTER, MANAGE TABLESPACE; ALTER, DROP USER; ALTER Database

22/10/ 20 12

ROLES
Los roles se emplean para asignar privilegios relacionados con los usuarios finales de un sistema A los que desarrollan sistemas se les asignan los roles explcitamente Funcionalidades de los roles: puede tener privilegios del sistema y privilegios de objetos del schema puede asignarse a otro roles. roles. No obstante un rol no se puede autorizar a si mismo ni tampoco de manera circular a cualquier usuario de la base de datos se le puede asignar un rol se puede habilitar y deshabilitar en cualquier momento un rol garantizado indirectamente (un rol asignado a un rol) puede ser explcitamente habilitado o inhabilitado al usuario. No obstante para habilitar un rol que contiene otro roles, los roles contenidos se habilitan implcitamente habilitando el rol que los contiene

DOMINIO DE UN USUARIO
Un usuario tiene privilegios sobre: sobre: objetos creados en su propio schema los privilegios asignados explcitamente al usuario los privilegios y roles garantizados al usuario que actualmente estn habilitados los privilegios y roles garantizados al grupo de usuarios PUBLIC

Asignacin de privilegios y roles


Los privilegios y roles del sistema se asignan a travs del los comandos SQL GRANT y REVOKE Los privilegios y roles sobre objetos del schema se asignan a travs de los comandos SQL GRANT y REVOKE Quienes pueden asignar privilegios y roles: un usuario con privilegio de sistema GRANT ANY ROLE un usuario con el rol ADMIN OPTION

22/10/ 20 12

Usuario PUBLIC
Provee acceso pblico a objetos especficos del sistema (tablas, tablas, vistas, vistas, etc.) etc.) Todo usuario pertenece automticamente al usuario PUBLIC, por lo tanto provee a los usuarios con privilegios del sistema (los privilegios que se asignen a PUBLIC) Restricciones del usuario PUBLIC: no se puede asignar cuotas sobre los tablespaces a PUBLIC, no obstante se le puede asignar la cuota UNLIMITED TABLESPACE se pueden crear vnculos con la base de datos y sinnimos como PUBLIC (usando CREATE PUBLIC DATABASE LINK/SYNONYM), pero ningn otro objeto puede ser propietario de PUBLIC.

Asignacin de PRIVILEGIOS DEL SISTEMA

GRANT { system_priv | role } [,{ system_priv | role } ] . . . TO {user | rol | PUBLIC } [ , {user | rol | PUBLIC } ] . . . [ WITH ADMIN OPTION ]

22/10/ 20 12

Guas para la asignacin de privilegios del sistema


Para asignar un privilegio lo tiene que adquirir con la opcin WITH ADMIN OPTION Adquiriendo un privilegio WITH ADMIN OPTION ste puede garantizar un privilegio del sistema o rol WITH ADMIN OPTION Cualquier usuario con privilegio GRANT ANY ROLE puede asignar cualquier rol de la base de datos. Quien tiene ADMIN OPTION puede asignar o quitar privilegios del sistema a cualquier usuario o rol de la base de datos.

Privilegios SYSOPER y SYSDBA


Categora Privilegios STARTUP SHUTDOWN ALTER DATABASE OPEN|MOUNT ALTER DATABASE BACKUP CONTROLFILE ALTER TABLESPACE BEGIN|END BACKUP RECOVER DATABASE ALTER DATABASE ARCHIVELOG RESTRICTED SESSION SYSOPER privileges WITH ADMIN OPTION CREATE DATABASE RECOVER DATABASE UNTIL

SYSOPER

SYSDBA

22/10/ 20 12

Informacin de los privilegios del sistema


DBA_SYS_PRIVS GRANTEE PRIVILEGE ADMIN OPTION SESSION_PRIVS PRIVILEGE

SQL*> SELECT * FROM dba_sys_privs; GRANTEE ----------------... SCOTT SYS SYS SYSTEM ... PRIVILEGE -------------------ADM ---------------NO NO YES YES

SELECT ANY TABLE DELET ANY TABLE SELECT ANY TABLE UNLIMITED TABLE SPACE

Informacin de los privilegios del sistema


SQL*> SELECT * FROM session_privs; PRIVILEGE --------------------------------------CREATE SESSION ALTER SESSION CREATE TABLE SELECT ANY TABLE CREATE CLUSTER CREATE SYNONYM CREATE VIEW CREATE SEQUENCE CREATE DATABASE LINK CREATE PROCEDURE CREATE TRIGGER CREATE TYPE 12 rows selected.

22/10/ 20 12

Quitando privilegios del sistema


REVOKE { system_priv | role } [,{ system_priv | role } ] . . . TO {user | rol | PUBLIC } [ , {user | rol | PUBLIC } ] . . . El comando REVOKE puede quitar solamente privilegios garantizados con GRANT Quitar privilegios del sistema puede tener efectos sobre objetos dependientes No existe un efecto cascada cuando un privilegio de sistema es quitado

PRIVILEGIOS DE OBJETO

Privilegio Tabla ALTER DELETE EXECUTE INDEX INSERT REFERENCES SELECT UPDATE

Vista

Sequence

Procedure

22/10/ 20 12

Asignando PRIVILEGIOS DE OBJETO


GRANT { object_priv [ (column_list) ] [, object_priv [ (column_list) ] ] . . . | ALL [ PRIVILEGES ] } ON [schema.] object TO {user | rol | PUBLIC } [ , {user | rol | PUBLIC } ] [ WITH GRANT OPTION ] Para poder asignar privilegios el objeto debe estar en el schema del usuario que lo asigna o haber adquirido el mismo WITH GRANT OPTION Por omisin al dueo del objeto se le asignan todos los privilegios autom. Tener precaucin en la asignacin de privilegios a otros usuarios cuando existen problemas de seguridad WITH GRANT OPTION no se puede usar para asignar privilegios a roles

Informacin de PRIVILEGIOS DE OBJETO


DBA_TAB_PRIVS GRANTEE OWNER TABLE_NAME GRANTOR PRIVILEGE GRANTABLE DBA_COL_PRIVS GRANTEE OWNER TABLE_NAME COLUMN_NAME GRANTOR PRIVILEGE GRANTABLE

SQL* > SELECT * FROM dba_tab_privs WHERE GRANTEE=SCOTT; GRANTE OWNER TABLE_NAME ---------------- --------------- ---------------------SCOTT SYS RESUMES 1 row selected. GRA --------SYS PRIVILEGE ---------------READ GRA -------NO

SQL*> SELECT * FROM dba_col_privs; GRANTEE OWNER TABLE_NAME COLUMN_NAME ------------------------- --------------------- ------------------------SYSTEM SCOTT EMP EMPNO SYSTEM SCOTT EMP SAL 2 rows selected.

GRANTOR PRIVILEGE GRA --------------- ---------------- ------SCOTT INSERT NO SCOTT UPDATE NO

10

22/10/ 20 12

Quitando PRIVILEGIOS DE OBJETO


REVOKE { object_priv [, object_priv ] . . . | ALL [ PRIVILEGES ] } ON [schema.] object FROM {user | rol | PUBLIC } [ , {user | rol | PUBLIC } ] [ CASCADE CONSTRAINTS ] Los que asignan privilegios slo puede quitrselos a aquellos usuarios a los que ellos le han asignado esos privilegios. Cuando se quitan privilegios de objetos estos se quitan en cascada cuando fueron asignados WITH GRANT OPTION. Por ejemplo: 1 - USER1 obtiene un privilegio SELECT sobre un objeto con la opcin GRANT OPTION de SCOTT 2 - USER1 garantiza el privilegio SELECT sobre la tabla EMP a USER2 3 - Se quita el privilegio SELECT a USER1, este tambin se le quita a USER2

11

También podría gustarte