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

Insert

Delete

Index
Alter

Delete

VISTA

TABLA
References
Insert
Select

Execute

Update

PROCEDIMIENTO

Update

Select

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

Alter Database
Create Tablespace Alter Tablespace
Manage Tablespace Drop Tablespace

TABLESPACE
Create Table
Tablas

Create any table


Alter any table
Drop any table

Create any view


Drop any view

Sinnimos
Pblicos

Secuencias

Create any sequence


Alter any sequence
Drop any sequence

Create synonym

Create procedure
Proced.

Create any table index


Alter any table index
Drop any table index

Create sequence

Create view
Vista

Indices

Create any procedure


Alter any procedure
Drop any procedure

Create public synonym


Drop public synonym

Sinnimos

Create any synonym


Alter any synonym
Drop any 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

SYSOPER

SYSDBA

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

22/10/ 20 12

Informacin de los privilegios del sistema


DBA_SYS_PRIVS

SESSION_PRIVS

GRANTEE
PRIVILEGE
ADMIN OPTION

PRIVILEGE

SQL*> SELECT * FROM dba_sys_privs;


GRANTEE
----------------...
SCOTT
SYS
SYS
SYSTEM
...

PRIVILEGE
--------------------

ADM
----------------

SELECT ANY TABLE


DELET ANY TABLE
SELECT ANY TABLE
UNLIMITED TABLE SPACE

NO
NO
YES
YES

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

DBA_COL_PRIVS

GRANTEE
OWNER
TABLE_NAME
GRANTOR
PRIVILEGE
GRANTABLE

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

SQL*> SELECT * FROM dba_col_privs;


GRANTEE OWNER TABLE_NAME COLUMN_NAME
------------------------- --------------------- ------------------------SYSTEM
SCOTT
EMP
EMPNO
SYSTEM
SCOTT
EMP
SAL
2 rows selected.

GRA
-------NO

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