Leccin 16
Controlar al Acceso de los Usuarios
Objetivos
Explicar el modelo de seguridad de la base de datos. Describir los privilegios del sistema. Definir y mantener el acceso a la base de datos utilizando roles. Identificar los privilegios sobre los objetos. Cambiar una clave de acceso o password. Otorgar y quitar privilegios sobre los objetos. Crear sinnimos para facilitar el acceso a las tablas.
Privilegios
Seguridad de la Base de Datos.
Seguridad del Sistema. Seguridad de Datos.
Privilegios del Sistema.
Otorgar acceso a la base de datos.
Privilegios sobre los Objetos.
Manipular el contenido de los objetos de la base de datos.
Esquema.
Coleccin de objetos, tales como tablas, vistas, y secuencias.
Privilegios del Sistema
Se dispone de ms de ochenta privilegios. El DBA (Data Base Administrator) tiene privilegios de alto nivel sobre el sistema.
Crea nuevos usuarios. Elimina usuarios. Hace copias de resguardo (backup) de las tablas.
El DBA crea usuarios usando el comando CREATE USER de SQL. CREATE USER IDENTIFIED BY scott triger;
Privilegios del Usuario
Una vez que el usuario es creado, el DBA puede otorgarle privilegios ejecutando el comando GRANT. Un usuario tpico tiene los siguientes privilegios:
CREATE SESSION CREATE TABLE CREATE SEQUENCE CREATE VIEW CREATE PROCEDURE
Otorgar Privilegios del Sistema
El DBA puede otorgar a los usuarios privilegios del Sistema. GRANT create table, create sequence, create view TO scott;
Qu es un Rol ?
Es un grupo de privilegios relacionados que se puede otorgar al usuario y que lleva un nombre. Hace que sea fcil de otorgar y quitar privilegios a varios usuarios a la vez. Un usuario puede tener varios roles y a varios usuarios se les puede asignar el mismo rol. Sintaxis:
Create role role;
Cambiar una Password
Cuando se crea la cuenta del usuario se le inicializa su password. El usuario puede cambiar su password usando el comando ALTER USER. ALTER USER scott IDENTIFIED BY lion;
Privilegios sobre un Objeto
Privilegio / Objeto ALTER DELETE EXECUTE Tabla X X X X Vista Secuencia X Procedimiento Snapshot
INDEX
INSERT REFERENCES SELECT UPDATE
X
X X X X X X X X X
Otorgar Privilegios sobre un Objetos: Sintaxis
El DBA puede permitirles a los usuarios realizar acciones sobre objetos especficos. Los privilegios sobre un objeto varan de acuerdo al tipo del mismo. El propietario de un objeto tiene todos los privilegios sobre el mismo. El propietario de un objeto puede otorgar privilegios sobre los que le son propios. GRANT object_priv [(columns)] ON object TO {user|role|PUBLIC} [WITH GRANT OPTION];
Otorgar Privilegios sobre un Objeto: Ejemplos
Otorgar privilegios de consulta sobre la tabla EMP propia. Grant On To select emp sue, rich;
Otorgar privilegios de UDATE sobre columnas especficas a usuarios y roles.
Grant On To update (dname, loc) dept scott, manager;
Palabras reservadas WITH GRANT OPTION y PUBLIC: Ejemplos
Darle autoridad a un usuario para transmitir los privilegios a otros usuarios. Grant select On emp To scott With grant option; Otorgar privilegios de SELECT a todos los usuarios sobre la secuencia s_ord_id. Grant On To select s_ord_id public;
Verificacin de los privilegios otorgados
Acceder a las vistas del diccionario de datos para verificar los privilegios que el usuario ha otorgado o los que le han sido otorgados.
Tabla ROLE_SYS_PRIVS Descripcin Privilegios del Sistema otorgados a roles
ROLE_TAB_PIRVS
USER_ROLE_PRIVS USER_TAB_PRIVS_M ADE USER_TAB_PRIVS_R ECD USER_COL_PRIVS_ MADE USER_COL_PRIVS_R ECD
Privilegios de Tablas otorgados a roles
Roles accesibles por el usuario Privilegios otorgados sobre los objetos del usuario Privilegios sobre los objetos otorgados al usuario Privilegios otorgados sobre las columnas de los objetos del usuario Privilegios otorgados al usuario sobre columnas especficas
Quitar privilegios sobre los Objetos
Usar el comando REVOKE para quitar los privilegios otorgados a otros usuarios. Tambin se puede quitar los privilegios dados a otros a travs de la opcin WITH GRANT OPTION. Alice, como usuario, le quita los privilegios de SELECT y INSERT sobre la tabla DEPT otorgados al usuario Scott. Revoke On To select, insert dept scott;
Creacin de un Sinnimo
Simplificar el acceso a los objetos creando un sinnimo (otro nombre para un objeto). Hacer referencia a una tabla propia o de otro usuario. Permite acortar la longitud de los nombres de los objetos.
Create synonym For
dept [Link];
Creacin de un Sinnimo: Ejemplos
Crear un nombre abreviado para la vista dept_sum_vu. Create synonym For d_sum dept_sum_vu;
Los sinnimos pblicos son creados y eliminados nicamente por el DBA. Create public synonym dept For
[Link];
Eliminar un sinnimo.
Drop synonym dept;
Resumen
CREATE USER GRANT Le permite al DBA crear un usuario. Le permite al usuario otorgar los privilegios a otros usuarios para que accedan a los objetos que le son propios. Le permite al DBA crear una coleccin de privilegios.
CREATE ROLE
ALTER USER
REVOKE CREATE SYNONYM
Le permite al usuario cambiar su password.
Le quita a los usuarios privilegios sobre los objetos. Provee un nombre alternativo para los objetos.