Upload
evita-rama
View
105
Download
1
Embed Size (px)
Citation preview
Universidad del Cauca – FIET – Departamento de Sistemas
CAPITULO 13
Controlando el Acceso a los Usuarios
Universidad del Cauca – FIET – Departamento de Sistemas13-2
Después de este capítulo, usted estará en capacidad de: Crear usuarios Crear roles para facilitar la configuración y
el mantenimiento del modelo de seguridad Usar las sentencias GRANT y REVOKE para
dar y quitar privilegios sobre los objetos Crear y usar enlaces a bases de datos
(data base links)
Objetivos
Universidad del Cauca – FIET – Departamento de Sistemas13-3
Desarrollar un corto examen de cinco (5) preguntas en modo de aprendizaje (Learning mode), seleccionados en forma aleatoria.
Realizar una corta realimentación de cada una de las preguntas.
Tema: Controlling User Access
Examen previo
Universidad del Cauca – FIET – Departamento de Sistemas13-4
Controlando el Acceso a los Usuarios
ServidorORACLE 9iTM
Usuarios
Barrera de
seguridad del
Sistema1 2 3
Barrera de seguridad
de los datos
Acceso seguro a los datos del
servidor
Por ejemplo:User/passwordEspacio de disco para un usuarioOperaciones que puede realizar
Por ejemplo:GRANT SELECT ON Diplo01.Empleados
Universidad del Cauca – FIET – Departamento de Sistemas13-5
Son el derecho que tiene un usuario para ejecutar una sentencia SQL
El Administrador de la base de datos (DBA) tiene todos los privilegios y puede otorgar privilegios a otros usuarios
Los privilegios del sistema dan acceso a la base de datos
Los privilegios de objeto dan la capacidad de manipular el contenido de los objetos de la base de datos
Los usuarios pueden dar privilegios a otros usuarios o a roles (grupos de usuarios)
Privilegios
Universidad del Cauca – FIET – Departamento de Sistemas13-6
Privilegios del sistema Más de 100 privilegios. Algunos de ellos son:
Universidad del Cauca – FIET – Departamento de Sistemas13-7
Privilegios del sistema
Universidad del Cauca – FIET – Departamento de Sistemas13-8
Privilegios del sistema
Universidad del Cauca – FIET – Departamento de Sistemas13-9
Privilegios del sistema
Universidad del Cauca – FIET – Departamento de Sistemas13-10
Privilegios del sistema
Universidad del Cauca – FIET – Departamento de Sistemas13-11
Privilegios del sistema
Universidad del Cauca – FIET – Departamento de Sistemas13-12
Privilegios del sistema
Universidad del Cauca – FIET – Departamento de Sistemas13-13
Creación de usuarios
CREATE USER NombreUsuarioIDENTIFIED {BY clave | EXTERNALLY | GLOBALLY AS ‘NombreExterno’}[… | ACCOUNT {LOCK | UNLOCK}];
Sólo el administrador del sistema y los usuarios con el privilegio de crear usuarios pueden usar esta sentencia
Después de crear el usuario, éste aún no puede hacer nada en el sistema. Es como tener una tarjeta plástica para entrar a un edificio inteligente, pero en el sistema aún NO han dado permiso para entrar al edificio
Universidad del Cauca – FIET – Departamento de Sistemas13-14
Otorgando privilegios del sistema
GRANT Privilegio [, Privilegio2, …]TO Usuario1 [, Usuario2 | Rol, PUBLIC …][WITH ADMIN OPTION];
Esta sentencia permite otorgar privilegios a un usuario
El privilegio mínimo que un usuario necesita para entrar al sistema es CREATE SESSION. En este momento se activa la tarjeta plástica en el sistema y el usuario puede usarla para entrar al edificio. La vista SESSION_PRIVS muestra los privilegios del usuario conectado
La cláusula WITH ADMIN OPTION permite al usuario que recibió el privilegio, concederlo a otros usuarios
Universidad del Cauca – FIET – Departamento de Sistemas13-15
Otorgando privilegios del sistema
Se recomienda asignar sólo los roles que un usuario necesita (como administrador ser lo más restrictivo posible)
Un usuario desarrollador de una aplicación, normalmente necesita crear tablas, vistas, secuencias y procedimientos, pero no crear usuarios o hacer copias de seguridad del sistema, entre otros
Para crear objetos (un usuario cree su esquema) debe tener cuotas de espacio en disco o el privilegio UNLIMITED TABLESPACE (Cuidado!!!)
Universidad del Cauca – FIET – Departamento de Sistemas13-16
Roles
Usuario Usuario Usuario Usuario Usuario Usuario
Rol
Privilegios Privilegios
Universidad del Cauca – FIET – Departamento de Sistemas13-17
CREATE ROLE NombreRol;
Un rol es un grupo de privilegios que reciben un nombre, este rol puede ser otorgado posteriormente a un usuario.
Usar roles hace más fácil el manejo de los privilegios
Un usuario puede tener asignados varios roles y varios usuarios pueden tener el mismo rol
Los roles normalmente se crean debido a necesidades de las aplicaciones
El DBA o un usuario con privilegios de crear roles, crea el rol y luego a ese rol se le asignan los privilegios
Roles
Universidad del Cauca – FIET – Departamento de Sistemas13-18
Uso de roles
La vista USER_ROLE_PRIVS muestra los roles que se le han asignado a un usuario (el que esta actualmente conectado)
En este caso el rol da tres privilegios a DVIVAS y el usuario recibe en forma independiente esos mismos privilegios
Universidad del Cauca – FIET – Departamento de Sistemas13-19
Cambiar la clave
El DBA crea la cuenta de usuario y asigna una clave inicial
El usuario puede cambiar la clave usando la sentencia ALTER USER
En iSQL*Plus se recomienda usar la opción “Preferences -> Change Password”, las claves no se ven en el editor, cuidado con dejar la sesión activa … le pueden cambiar la clave
Universidad del Cauca – FIET – Departamento de Sistemas13-20
Privilegios de objeto Es un derecho de realizar una sentencia/acción sobre
un objeto especifico (tabla, vista, secuencia …) Existen aproximadamente 35 privilegios de objeto,
algunos de ellos son:
Universidad del Cauca – FIET – Departamento de Sistemas13-21
GRANT PrivilegioDeObjeto [(Columnas)]ON [Esquema.]ObjetoTO {Usuario | Rol | PUBLIC}[WITH GRANT OPTION];
Dependiendo de cada objeto se pueden asignar ciertos privilegios (tabla anterior)
El dueño del objeto, por defecto tiene todos los privilegios sobre el objeto
El dueño puede otorgar ciertos/todos los privilegios sobre un objeto a un usuario, rol o a PUBLIC
La cláusula WITH GRANT OPTION da la posibilidad de que el usuario que recibe los privilegios pueda concederlos a otros usuarios, de otro modo, sólo puede usarlos y no concederlos. Se puede crear una gran cadena NO circular de usuarios con WITH GRANT OPTION
Otorgando privilegios de objeto
Universidad del Cauca – FIET – Departamento de Sistemas13-22
Otorgando privilegios de objeto
Algunos privilegios se pueden asignar sobre las columnas de las tablas y de las vistas
La vista USER_TAB_PRIVS_RECD muestra los privilegios que el usuario ha recibido sobre los objetos de otros usuarios
La vista USER_COL_PRIVS_RECD muestra los privilegios que el usuario ha recibido sobre las columnas de tablas y vistas de otros usuarios
Universidad del Cauca – FIET – Departamento de Sistemas13-23
La palabra clave PUBLIC
Use PUBLIC para asignar un privilegio a todos los usuarios de la base de datos (el sistema total)
Los privilegios asignados a PUBLIC se pueden consultar a través del esquema SYS en dba_col_privs y dba_tab_privs
El usuario Dvivas no tiene un privilegio directo sobre la tabla Departamentos del esquema Diplo01, pero en forma indirecta lo obtiene con PUBLIC
Universidad del Cauca – FIET – Departamento de Sistemas13-24
Confirmar los privilegios concedidos
VISTA DEL DICCIONARIO
DESCRIPCIÓN
ROLE_SYS_PRIVS Privilegios del sistema concedidos a los roles
ROLE_TAB_PRIVS Privilegios de objeto concedidos a los roles
USER_SYS_PRIVS Privilegios del sistema concedidos al usuario
USER_ROLE_PRIVS Roles accesibles por el usuario
USER_TAB_PRIVS_MADE Privilegios de objeto que el usuario ha concedido a otros sobre sus objetos
USER_TAB_PRIVS_RECD Privilegios de objeto que el usuario ha recibido sobre objetos de otros usuarios
USER_COL_PRIVS_MADE Privilegios de objeto que el usuario ha concedido a otros sobre las columnas de tablas o vistas
USER_COL_PRIVS_RECD Privilegios de objeto que el usuario ha recibido sobre columnas de tablas/vistas de otros usuarios
Universidad del Cauca – FIET – Departamento de Sistemas13-25
REVOKE {Privilegio1 [, Privilegio2 …] | Rol | ALL PRIVILEGES}FROM {Usuario1[, Usuario2 …] | Rol | PUBLIC};
La sentencia REVOKE permite quitar/revocar privilegios del sistema otorgados a un usuario, rol o PUBLIC
La palabra ALL PRIVILEGES quita/revoca todos los privilegios del sistema otorgados al usuario, rol o PUBLIC
Revocar un privilegio de sistema a un usuario no tiene efectos en cascada
Revocando privilegios de sistema
SYSTEM Diplo01 Dvivas
CREATE TABLEWITH ADMIN OPTION
CREATE TABLE
Universidad del Cauca – FIET – Departamento de Sistemas13-26
Revocando privilegios de sistema
Universidad del Cauca – FIET – Departamento de Sistemas13-27
REVOKE {Privilegio1 [, Privilegio2 …]| ALL}ON ObjetoFROM {Usuario1[, Usuario2 …] | Role | PUBLIC}[CASCADE CONSTRAINTS];
La sentencia REVOKE permite quitar/revocar privilegios de objeto otorgados a un usuario, rol o PUBLIC
No importa si el privilegio fue concedido con la opción WITH GRANT OPTION
La cláusula CASCADE CONSTRAINTS se requiere para remover restricciones de integridad referencial realizados cuando se poseía el privilegio REFERENCES
Revocar un privilegio de objeto tiene efectos en cascada
Revocando privilegios de objeto
SYSTEM Diplo01 Dvivas
SELECT ON Tabla1WITH GRANT OPTION
SELECT ON Tabla1
Universidad del Cauca – FIET – Departamento de Sistemas13-28
Revocando privilegios de objeto
Universidad del Cauca – FIET – Departamento de Sistemas13-29
Un enlace de base de datos (data base link) permite a usuarios locales de una base de datos Oracle acceder datos de una base de datos Oracle remota
Un enlace de base de datos es un apuntador en usa sola vía que se almacena en el diccionario de datos. Se pueden consultar en USER_DB_LINKS, DBA_DB_LINKS y ALL_DB_LINKS
El usuario de la base de datos local NO necesita ser un usuario de la base de datos remota
Normalmente el DBA es el encargado de crear los enlaces de bases de datos PÚBLICOS, aunque los usuarios pueden crear sus propios enlaces de bases de datos PRIVADOS
Enlaces a bases de datos
Universidad del Cauca – FIET – Departamento de Sistemas13-30
Enlaces a bases de datos
ServidorMLEARNING01
ServidorBD9ICAL
Diplo01
Tablas
VistasRemota
Local
SYSTEM
Enlace a base de datos
SELECT *FROM Departamentos …
Universidad del Cauca – FIET – Departamento de Sistemas13-31
En esta lección usted debió aprender: A usar sentencias de control de acceso (DCL,
Data Control Language) para: Conceder privilegios de sistema y objeto con la
sentencia GRANT Revocar privilegios de sistema y objeto con la
sentencia REVOKE A crear usuarios con la sentencia CREATE
USER A crear roles con la sentencia CREATE ROLE A cambiar la clave de un usuario con la
sentencia ALTER USER
Resumen
Universidad del Cauca – FIET – Departamento de Sistemas13-32
Realizar una práctica de trece (13) puntos que permite practicar: La concesión de privilegios de objetos a
otros usuarios La actualización de datos en tablas que
pertenecen a otros usuarios La creación de sinónimos para acceder y
modificas objetos que pertenecen a otros usuarios
La consulta del diccionario de datos para conocer los privilegios otorgados y recibidos
Practica 13
Universidad del Cauca – FIET – Departamento de Sistemas13-33
Desarrollar un examen de diez (10) preguntas en modo de aprendizaje (Learning mode), seleccionados en forma aleatoria.
Realizar una corta realimentación de cada una de las preguntas.
Tema: Controlling User Access
Examen posterior