Sunteți pe pagina 1din 11

Privilegios en Oracle

Database
Privilegio

 La gestión de privilegios en Oracle, permite restringir procesos en el nivel


de comando, usuario, rol o sistema. Los privilegios disminuyen el riesgo de
seguridad asociado a un usuario o un proceso que tiene capacidades
completas de superusuario en un sistema.
 Principio del privilegio mínimo
Es un concepto fundamental en las ciencias de la computación y la base
de datos. Dentro de un ambiente Oracle un usuario debería tener la cantidad
mínima de privilegios para realizar su tarea. “Oracle Database” asegura la
asignación de este tipo de privilegios mediante asignación de privilegios a
nivel de objeto y de sistema, utilización de roles, perfiles de usuario para
gestión de contraseñas y recursos de servidor.
En Oracle se tiene dos tipos de
privilegios:

1. Privilegios sobre objetos


2. Privilegios del sistema
Privilegios sobre objetos

 Este tipo de permisos permiten al usuario realizar ciertas acciones en


objetos de la BD, como una Tabla, Vista, un Procedure o Función, etc. Si a
un usuario no se le dan estos permisos sólo puede acceder a sus propios
objetos. Este tipo de permisos los da el dueño del objeto, el administrador
o alguien que haya recibido este permiso explícitamente (con Grant
Option).
 Por ejemplo, para otorgar permisos a una tabla Ventas para un usuario
particular:
SQL> GRANT SELECT,INSERT,UPDATE, ON analista.venta TO jperez;

 Adicionalmente, podemos restringir los DML a una columna de la tabla


mencionada. Si quisiéramos que este usuario pueda dar permisos sobre la
tabla Factura a otros usuarios, utilizamos la cláusula WITH GRANT OPTION.
SQL> GRANT SELECT,INSERT,UPDATE,DELETE ON venta TO mgarcia WITH
GRANT OPTION;
Privilegios del sistema

 Permite al usuario hacer ciertas tareas sobre la BD, como por ejemplo
crear un Tablespace. Estos permisos son otorgados por el administrador o
por alguien que haya recibido el permiso para administrar ese tipo de
privilegio.
 Para otorgar varios permisos a la vez, se hace de la siguiente manera:
SQL> GRANT CREATE USER, ALTER USER, DROP USER TO ahernandez;
Grant (dar permisos)

Esta sentencia sirve para dar permisos (o


privilegios) a un usuario o a un rol.

GRANT CREATE SESSION TO miusuario;


Permisos para usuario de modificación de
datos (permiso sobre objeto):
GRANT SELECT, INSERT, UPDATE, DELETE ON
T_PEDIDOS TO miusuario;
Permisos de solo lectura para todos:
Revoke (quitar permisos)

Esta sentencia sirve para quitar permisos


(o privilegios) a un usuario o a un rol.

 REVOKE ALL PRIVILEGES FROM miusuario;


Quitamos todo:
 REVOKE ALL ON T_PEDIDOS FROM miusuario;
Sintaxis, quitar un rol asignado:
 REVOKE role FROM {user, | role, |PUBLIC}
Quitar un permiso de sistema:
 REVOKE system_priv(s) FROM {user, | role, |PUBLIC}
 REVOKE ALL FROM {user, | role, |PUBLIC}
Rol
Los Roles, son simplemente un conjunto de privilegios
que se pueden otorgar a un usuario o a otro Rol.
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.
Para crear un Rol y asignarlo a un usuario se hace de la
siguiente manera:

SQL> CREATE ROLE appl_dba;

S-ar putea să vă placă și