Documentos de Académico
Documentos de Profesional
Documentos de Cultura
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
Execute
PROCEDIMIENTO
Select
SECUENCIA
Alter
22/10/ 20 12
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
Objetos
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
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.
GRANT { system_priv | role } [,{ system_priv | role } ] . . . TO {user | rol | PUBLIC } [ , {user | rol | PUBLIC } ] . . . [ WITH ADMIN OPTION ]
22/10/ 20 12
SYSOPER
SYSDBA
22/10/ 20 12
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
22/10/ 20 12
PRIVILEGIOS DE OBJETO
Privilegio Tabla ALTER DELETE EXECUTE INDEX INSERT REFERENCES SELECT UPDATE
Vista
Sequence
Procedure
22/10/ 20 12
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.
10
22/10/ 20 12
11