3. 1.Introducción
Administrador permite o deniega acceso a BD.
Seguridad BD:
Seguridad del sistema: usuario-sistemaBD
Seguridad de los datos: usuario-objetos BD
3
4. 2.Usuarios
Acceso: ejecutan aplicación de BD
(SQL *Plus, Oracle Forms ó navegador web)
Al instalar BD:
SYS: propietario del diccionario de datos
SYSTEM: administración BD (crear otros usuarios)
Prefijos vistas:
USER y ALL: accesibles para todos los usuarios
DBA: solo el administrador
Vistas con información de usuarios:
USER_USERS
ALL_USERS
4
5. Usuarios
1. Creación:
CREATE USER nombre_usuario
IDENTIFIED BY clave_acceso
[DEFAULT TABLESPACE espacio_tabla]
[TEMPORARY TABLESPACE espacio_tabla]
[QUOTA {entero {K|M} |UNLIMITED} ON espacio_tabla]
[PROFILE perfil];
Ejemplo:
CREATE USER PEPITO
IDENTIFIED BY PEPITO_PASSWORD
QUOTA 500K ON USERS;
5
6. Usuarios
2. Modificación:
ALTER USER nombre_usuario
IDENTIFIED BY clave_acceso
[DEFAULT TABLESPACE espacio_tabla]
[TEMPORARY TABLESPACE espacio_tabla]
[QUOTA {entero {K|M} |UNLIMITED} ON espacio_tabla]
[PROFILE perfil];
Ejemplo:
ALTER USER PEPITO
IDENTIFIED BY PEPITO_NUEVA_PASSWORD;
6
7. Usuarios
3. Borrado:
DROP USER usuario [CASCADE];
Ejemplo:
DROP USER PEPITO;
7
8. 3.Privilegios
Privilegios sobre los objetos
Privilegio Tabla Vista Secuencia Procedure
ALTER
DELETE
EXECUTE
INDEX
INSERT
REFERENCES
SELECT
UPDATE
8
9. Privilegios
Para dar privilegios sobre los objetos:
GRANT {priv_objeto [,priv_objeto] ...
| ALL [PRIVILEGES]}
[(columna [,columna]...)]
ON [usuario.]objeto
TO {usuario|rol|PUBLIC}
[, {usuario|rol|PUBLIC}...]
[WITH GRANT OPTION];
Ejemplos:
GRANT ALL ON PINTORES TO PEPITO;
GRANT UPDATE (N_PINTOR) ON PINTORES TO PUBLIC;
9
10. Privilegios
Para retirar privilegios sobre los objetos:
REVOKE {priv_objeto [,priv_objeto] ...
| ALL [PRIVILEGES]}
ON [usuario.]objeto
FROM {usuario|rol|PUBLIC }
[, {usuario|rol|PUBLIC}]...;
Ejemplos:
REVOKE UPDATE ON PINTORES FROM PEPITO;
10
11. Privilegios
Privilegios sobre el sistema:
Sobre determinados objetos como TABLE, SESSION, TABLESPACES,
USER...
USER
Privilegio del sistema Operaciones autorizadas
CREATE USER Crear usuarios y cuotas sobre cualquier espacio
de tablas, establecer espacios de tablas por
omisión y temporales.
ALTER USER Modificar cualquier usuario. Este privilegio
autoriza al que lo recibe a cambiar la
contraseña de otro usuario, a cambiar cuotas
sobre cualquier espacio de tablas, a establecer
espacios de tablas por omisión, etc…
DROP USER Eliminar usuarios.
11
12. Privilegios
PRIVILEGE
Privilegio del sistema Operaciones autorizadas
GRANT ANY PRIVILEGE Todos los privilegios de sistema.
SESSION
Privilegio del sistema Operaciones autorizadas
CREATE SESSION Conectarnos a la BD.
ALTER SESSION Manejar la orden ALTER SESSION.
RESTRICTED SESSION Conectarnos a la BD cuando se ha levantado
con STARTUP RESTRICT.
12
13. Privilegios
TABLE
Privilegio del sistema Operaciones autorizadas
CREATE TABLE Crear tablas en nuestro esquema y generar índices sobre
las tablas del esquema.
CREATE ANY TABLE Crear una tabla en cualquier esquema.
ALTER ANY TABLE Modificar una tabla en cualquier esquema.
DROP ANY TABLE Borrar una tabla en cualquier esquema.
LOCK ANY TABLE Bloquear una tabla en cualquier esquema.
SELECT ANY TABLE Hacer SELECT en cualquier tabla.
INSERT ANY TABLE Insertar filas en cualquier tabla.
UPDATE ANY TABLE Modificar filas en cualquier tabla.
DELETE ANY TABLE Borrar filas de cualquier tabla.
13
14. Privilegios
ROLE
Privilegio del sistema Operaciones autorizadas
CREATE ROLE Crear roles.
ALTER ANY ROLE Modificar roles.
DROP ANY ROLE Borrar cualquier rol.
GRANT ANY ROLE Dar permisos para cualquier rol de la BD.
PROFILE
Privilegio del sistema Operaciones autorizadas
CREATE PROFILE Crear un perfil de usuario.
ALTER PROFILE Modificar cualquier perfil.
DROP PROFILE Borrar cualquier perfil.
14
15. Privilegios
INDEX
Privilegio del sistema Operaciones autorizadas
CREATE ANY INDEX Crear un índice en cualquier esquema, en cualquier
tabla.
ALTER ANY INDEX Modificar cualquier índice de la BD.
DROP ANY INDEX Borrar cualquier índice de la BD.
SEQUENCE
Privilegio del sistema Operaciones autorizadas
CREATE SEQUENCE Crear secuencias en nuestro esquema.
ALTER ANY SEQUENCE Modificar cualquier secuencia de la BD.
DROP ANY SEQUENCE Borrar secuencias de cualquier esquema.
SELECT ANY SEQUENCE Referenciar secuencias de cualquier esquema.
15
16. Privilegios
TABLESPACES
Privilegio del sistema Operaciones autorizadas
CREATE TABLESPACE Crear espacios de tablas.
ALTER TABLESPACE Modificar tablespaces.
MANAGE TABLESPACES Poner on-line u off-line a cualquier tablespace.
DROP TABLESPACE Eliminar tablespaces.
UNLIMITED TABLESPACE Utilizar cualquier espacio de cualquier tablespace.
16
17. Privilegios
PROCEDURE
Privilegio del sistema Operaciones autorizadas
CREATE ANY PROCEDURE Crear procedimientos almacenados, funciones y
paquetes en cualquier esquema.
CREATE PROCEDURE Crear procedimientos almacenados, funciones y
paquetes en nuestro esquema.
ALTER ANY PROCEDURE Modificar procedimientos almacenados, funciones y
paquetes en cualquier esquema.
DROP ANY PROCEDURE Borrar procedimientos almacenados, funciones y
paquetes en cualquier esquema.
EXECUTE ANY PROCEDURE Ejecutar procedimientos, funciones o referencias a
paquetes públicos en cualquier esquema.
17
18. Privilegios
SYNONYM
Privilegio del sistema Operaciones autorizadas
CREATE SYNONYM Crear sinónimos en nuestro esquema.
CREATE PUBLIC SYNONYM Crear sinónimos públicos.
DROP PUBLIC SYNONYM Borrar sinónimos públicos.
CREATE ANY SYNONYM Crear sinónimos en cualquier esquema.
DROP ANY SYNONYM Borrar sinónimos de cualquier esquema.
18
19. Privilegios
TYPE
Privilegio del sistema Operaciones autorizada
CREATE TYPE Crear tipos de objeto y cuerpos de tipos de objeto en el
propio esquema.
CREATE ANY TYPE Crear tipos de objeto y cuerpos de tipos de objeto en
cualquier esquema.
ALTER ANY TYPE Modificar tipos de objeto en cualquier esquema.
DROP ANY TYPE Eliminar tipos de objeto y cuerpos de tipos de objeto en
cualquier esquema.
EXECUTE ANY TYPE Utilizar y hacer referencia a tipos de objeto y tipos de
colección en cualquier esquema.
UNDER ANY TYPE Crear subtipos a partir de cualquier tipo de objeto no final.
19
20. Privilegios
VIEW
Privilegio del sistema Operaciones autorizadas
CREATE VIEW Crear vistas en el esquema propio.
CREATE ANY VIEW Crear vistas en cualquier esquema.
DROP ANY VIEW Borrar vistas en cualquier esquema.
OTROS
Privilegio del sistema Operaciones autorizadas
SYSDBA Ejecutar operaciones STARTUP y SHUTDOWN, ALTER
DATABASE, CREATE DATABASE, ARCHIVELOG y
RECOVERY, CREATE SPFILE.
SYSOPER Ejecutar operaciones STARTUP y SHUTDOWN, ALTER
DATABASE, ARCHIVELOG y RECOVERY, CREATE SPFILE.
20
21. Privilegios
Para asignar privilegios del sistema:
GRANT {privilegio|rol}
[,{privilegio|rol},....]
TO {usuario|rol|PUBLIC}
[, {usuario|rol|PUBLIC} ...]....
[WITH ADMIN OPTION];
Ejemplos:
GRANT CREATE SESSION TO PEPITO;
GRANT SELECT ANY TABLE TO PUBLIC;
21
22. Privilegios
Para retirar privilegios del sistema:
REVOKE {privilegio|rol}
[, {privilegio|rol},...]
FROM {usuario|rol|PUBLIC}
[, {usuario|rol|PUBLIC} ...]...;
22
23. Privilegios
Vistas con información de los privilegios:
SESSION_PRIVS • privilegios del usuario activo.
USER_SYS_PRIVS • privilegios de sistema asignados al usuario.
• privilegios de sistema asignados a los usuarios o a los
DBA_SYS_PRIVS roles.
USER_TAB_PRIVS • concesiones sobre objetos que son propiedad del
usuario, concedidos o recibidos por éste.
• concesiones sobre objetos que son propiedad del
USER_TAB_PRIVS_MADE usuario (asignadas).
USER_TAB_PRIVS_RECD • concesiones sobre objetos que recibe el usuario.
• concesiones sobre columnas en las que el usuario es
USER_COL_PRIVS el propietario, asigna el privilegio o lo recibe.
• todas las concesiones sobre columnas de objetos que
USER_COL_PRIVS_MADE son propiedad del usuario.
USER_COL_PRIVS_RECD • concesiones sobre columnas recibidas por el usuario.
23
24. 4.Roles
Roles (funciones) Privilegios
CONNECT ALTER SESSION, CREATE DATABASE
LINK, CREATE SEQUENCE, CREATE
SESSION, CREATE SYNONYM, CREATE
TABLE y CREATE VIEW
RESOURCE CREATE CLUSTER, CREATE INDESTYPE,
CREATE OPERATOR, CREATE PROCEDURE,
CREATE TABLE, CREATE SEQUENCE,
CREATE TRIGGER y CREATE TYPE
DBA Todos los privilegios de sistema
24
25. Roles
Para crear un rol se requiere el privilegio del sistema
CREATE ROLE:
CREATE ROLE NombreRol;
Ejemplo:
CREATE ROLE ALUMNOS;
Dar privilegios a los roles:
Ejemplo:
GRANT SELECT, INSERT ON PINTORES TO ALUMNOS;
GRANT INSERT ON PINACOTECAS TO ALUMNOS;
GRANT CREATE SESSION TO ALUMNOS;
Para conceder un rol a un usuario:
Ejemplo:
GRANT ALUMNO TO PEPITO;
25
26. Roles
Supresión de privilegios en los roles
Ejemplo
REVOKE INSERT ON PINTORES FROM ALUMNO;
Supresión de roles a los usuarios
Ejemplo
REVOKE ALUMNO FROM PEPITO;
Supresión de un rol
DROP ROLE NombreRol;
Ejemplo
DROP ROLE ALUMNO;
26
27. Roles
Establecer un rol por defecto
ALTER USER Nombre_usuario
DEFAULT ROLE Nombre_rol;
Vistas con información sobre roles en el diccionario de datos
ROLE_SYS_PRIVS • privilegios del sistema asignados a roles.
ROLE_TAB_PRIVS • privilegios sobre tablas aplicados a roles.
ROLE_ROLE_PRIVS • roles asignados a otros roles.
SESSION_ROLES • roles activos para el usuario.
USER_ROLE_PRIVS • roles asignados al usuario.
27