Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los...

33
Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios

Transcript of Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los...

Page 1: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas

CAPITULO 13

Controlando el Acceso a los Usuarios

Page 2: 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

Page 3: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 4: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 5: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 6: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-6

Privilegios del sistema Más de 100 privilegios. Algunos de ellos son:

Page 7: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-7

Privilegios del sistema

Page 8: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-8

Privilegios del sistema

Page 9: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-9

Privilegios del sistema

Page 10: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-10

Privilegios del sistema

Page 11: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-11

Privilegios del sistema

Page 12: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-12

Privilegios del sistema

Page 13: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 14: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 15: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los 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!!!)

Page 16: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-16

Roles

Usuario Usuario Usuario Usuario Usuario Usuario

Rol

Privilegios Privilegios

Page 17: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 18: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 19: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 20: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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:

Page 21: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 22: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 23: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los 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

Page 24: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 25: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los 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

Page 26: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-26

Revocando privilegios de sistema

Page 27: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 28: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

Universidad del Cauca – FIET – Departamento de Sistemas13-28

Revocando privilegios de objeto

Page 29: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 30: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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 …

Page 31: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 32: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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

Page 33: Universidad del Cauca – FIET – Departamento de Sistemas CAPITULO 13 Controlando el Acceso a los Usuarios.

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