Sei sulla pagina 1di 36

Tema: Creación de Usuarios , Roles y Recursos.

Docente: Mg. Guido Anco Chambilla

2017-II
II
I
Creación de Usuarios en B.D. ORACLE XE
Objetivos
Al finalizar la sesión el alumno estará preparado para:
• Crear usuarios
• Crear roles para facilitar la configuración y el
mantenimiento del modelo de seguridad
• Utilizar las sentencias GRANT y REVOKE para otorgar y
revocar privilegios de objeto
• Crear y acceder a enlaces de base de datos
Contenidos temáticos

• Creación de Usuarios y Grupos de Privilegios.

• Creación de Perfiles

• Bloqueos
Control de Acceso de Usuarios

Administrador
de base
de datos

Nombre de usuario y contraseña


Privilegios
Usuarios
Privilegios
• Seguridad de base de datos:
• Seguridad de sistema
• Seguridad de datos
• Privilegios del sistema: Obtención de acceso a la base de datos
• Privilegios de objeto: Manipulación del contenido de objetos de base
de datos
• Esquemas: Recopilaciones de objetos, como tablas, vistas y
secuencias
Esquema de BD
• Un esquema es una colección de objetos lógicos, utilizados para
organizar de manera mas comprensible la información de la base de
datos.
• Algunos esquemas que se tiene con la instalación:
• Human Resources (HR):BD relacional basico
• Order Entry(OE): HR meramente relacional
• Product Media (PM): Incluye campo interMedia y LOB
• Sales History (SH): Tablas con campos de niveles
Privilegios del Sistema
• Hay más de 100 privilegios disponibles.
• El administrador de la base de datos tiene privilegios del sistema de
alto nivel para tareas como:
• Crear nuevos usuarios
• Eliminar usuarios
• Eliminar tablas
• Realizar copias de seguridad de tablas
Creación de Usuarios
• El DBA crea usuarios utilizando la sentencia CREATE USER

CREATE USER user


IDENTIFIED BY password;

CREATE USER scott


IDENTIFIED BY tiger;
User created.
Privilegios de Usuario del Sistema
• Una vez creado un usuario, el DBA puede otorgarle privilegios
específicos del sistema.
GRANT privilege [, privilege...]
TO user [, user| role, PUBLIC...];

• Un desarrollador de aplicaciones, por ejemplo, puede tener los


siguientes privilegios del sistema:
• CREATE SESSION
• CREATE TABLE
• CREATE SEQUENCE
• CREATE VIEW
• CREATE PROCEDURE
Otorgamiento de Privilegios del Sistema
• El DBA puede otorgar a un usuario privilegios específicos del
sistema.

GRANT create session, create table,


create sequence, create view
TO scott;
Grant succeeded.
Rol de Usuario
• Un rol es un grupo de privilegios relacionados que se conceden a los
usuarios.
Usuarios

Director

Privilegios

Asignación de privilegios Asignación de privilegios


sin un rol con un rol
Creación y Otorgamiento de
Privilegios a un Rol
• Cree un rol.
CREATE ROLE manager;
Role created.

• Otorgue privilegios a un rol.


GRANT create table, create view
TO manager;
Grant succeeded.
• Otorgue un rol a usuarios.
GRANT manager TO DEHAAN, KOCHHAR;
Grant succeeded.
Cambio de la Contraseña
• El DBA crea la cuenta de usuario e inicializa la contraseña.
• Puede cambiar la contraseña utilizando la sentencia ALTER USER.

ALTER USER scott


IDENTIFIED BY lion;
User altered.
Privilegios de Objeto
Privilegio
de Objeto Tabla Vista Secuencia Procedimiento

ALTER  
DELETE  
EXECUTE 

INDEX 
INSERT  

REFERENCES  

SELECT   
UPDATE  
Privilegios de Objeto
• Los privilegios de objeto varían de un objeto a otro.
• Un propietario tiene todos los privilegios sobre el objeto.
• Un propietario puede otorgar privilegios específicos sobre su objeto.

GRANT object_priv [(columns)]


ON object
TO {user|role|PUBLIC}
[WITH GRANT OPTION];
Otorgamiento de
Privilegios de Objeto
• Otorgue privilegios de objeto en la tabla
EMPLOYEES.
GRANT select
ON employees
TO sue, rich;
Grant succeeded.

• Otorgue privilegios para actualizar columnas


específicas a usuarios y roles.
GRANT update (department_name, location_id)
ON departments
TO scott, manager;
Grant succeeded.
Uso de las Palabras Clave WITH GRANT
OPTION y PUBLIC
• Otorgue a un usuario autoridad para transferir
privilegios.
GRANT select, insert
ON departments
TO scott
WITH GRANT OPTION;
Grant succeeded.
• Permita que todos los usuarios del sistema
consulten datos de la tabla DEPARTMENTS de
Alice.
GRANT select
ON alice.departments
TO PUBLIC;
Grant succeeded.
Cómo Revocar Privilegios de Objeto
• Utilice la sentencia REVOKE para revocar privilegios otorgados a
otros usuarios.
• Los privilegios otorgados a otros a través de la cláusula WITH
GRANT OPTION también se revocan.

REVOKE {privilege [, privilege...]|ALL}


ON object
FROM {user[, user...]|role|PUBLIC}
[CASCADE CONSTRAINTS];
Enlaces de Base de Datos
• Una conexión de enlace de base de datos permite que los usuarios
locales accedan a datos de una base de datos remota

Local Remota

EMP Tabla
Resumen
• Las sentencias DCL que controlan el acceso a la base de
datos y a objetos de base de datos mas importantes son:
Sentencia Acción

CREATE USER Crea un usuario (normalmente la ejecuta


un DBA).
GRANT Otorga a otros usuarios privilegios para
acceder a los objetos.
CREATE ROLE Crea una recopilación de privilegios
(normalmente la ejecuta un DBA).
ALTER USER Cambia la contraseña de un usuario.
REVOKE Elimina privilegios sobre un objeto de los
usuarios.
Creación de Perfiles en B.D. ORACLE XE
PERFILES (PROFILES)
• Está constituido por un conjunto de límites de recursos de la base de
datos. Diferentes perfiles pueden ser asignados a diferentes
usuarios.
• Habilitar o deshabilitar la limitación de recursos mediante perfiles
puede hacerse (no aplicable a los parámetros de contraseña que
siempre están habilitados):
- Mediante el parámetro de inicialización
RESOURCE_LIMIT (init.ora), asignando valores TRUE o FALSE
(por defecto).
- Mediante la sentencia ALTER SYSTEM SET RESOURCE_LIMIT =
TRUE/FALSE.
Creación de Perfiles
• Es necesario el privilegio de sistema “CREATE PROFILE”.
• Existe un perfil por defecto o DEFAULT. Inicialmente todos los
recursos designados en él tienen valor UNLIMITED, por lo que es
conveniente modificarlo (sentencia ALTER PROFILE).
• Un usuario al que no se le asigna perfil posee el perfil DEFAULT.
• Aquellos recursos para los que en el perfil asignado no se ha
definido un valor, o se ha indicado DEFAULT, toman el valor
designado en el perfil por defecto.
• Sintaxis:
• CREATE PROFILE <nombre_perfil> LIMIT <parámetros>
<valor>/UNLIMITED/DEFAULT;
Parámetros de Recursos
▪ SESSIONS_PER_USER. Número de sesiones concurrentes.

▪ CPU_PER_SESSION. Tiempo de UCP por sesión (centésimas de segundo).

▪ CPU_PER_CALL. Tiempo de UCP para una llamada (parse, execute, o fetch) en


centésimas de segundo.

▪ CONNECT_TIME. Tiempo total para una sesión (minutos).

▪ IDLE_TIME. Tiempo de inactividad continua en una sesión (minutos).


Parámetros de Recursos
▪ LOGICAL_READS_PER_SESSION. Numero de bloques de datos leídos en una sesión
(memoria o disco).
▪ LOGICAL_READS_PER_CALL. Numero de bloques de datos para una llamada de una
SQL (parse, execute, o fetch).
▪ PRIVATE_SGA. Cantidad de espacio, en bytes, para uso privado reservado en la
“shared pool” de la SGA (se emplea K o M para indicar kilobytes o megabytes). Solo
en “Shared Server”.
▪ COMPOSITE_LIMIT. Coste total en recursos por sesión expresado en unidades de
servicio (CPU_PER_SESSION, CONNECT_TIME, LOGICAL_READS_PER_SESSION, y
PRIVATE_SGA).
Parámetros de Contraseña
• FAILED_LOGIN_ATTEMPTS. Número de intentos fallidos de conexión antes del
bloqueo.
• PASSWORD_LIFE_TIME. Número de días en que la clave es válida para
autentificación.
• Si se indica un valor para PASSWORD_GRACE_TIME, la clave expira si no se cambia en este
periodo. Si no se indica valor para PASSWORD_GRACE_TIME, por defecto UNLIMITED, se
genera un aviso pero el usuario puede seguir conectándose.
• PASSWORD_GRACE_TIME. Periodo de gracia donde se permite la conexión pero
se notifica la necesidad de cambiarla.
• PASSWORD_REUSE_TIME . Número de días en los cuales la contraseña no puede
reutilizarse.
Parámetros de contraseña
▪ PASSWORD_REUSE_MAX . Número de cambios de clave necesarios antes de
poder reutilizar la clave actual.
▪ NOTA: PASSWORD_REUSE_TIME y PASSWORD_REUSE_MAX deben usarse conjuntamente.
Si se indica un entero para ambos parámetros, el usuario no puede reutilizar la contraseña
hasta que ha cambiado el número de veces indicado en PRM durante el periodo indicado
por PRT. Si alguno de los dos tiene valor UNLIMITED, nunca se podrá reutilizar la
contraseña. Si ambos tiene valor UNLIMITED, la bd los ignora.
▪ PASSWORD_LOCK_TIME. Número de días que la cuenta estará bloqueada
después de un cierto número de fallos de conexión indicado.
▪ PASSWORD_VERIFY_FUNCTION. Permite indicar como argumento un “script”
PL/SQL que verifica la complejidad de la clave. Si se indica NULL no se usa
función alguna. Oracle proporciona una función por defecto: “verify_function”.
Creación de Perfiles
Valor UNLIMITED. Si es un parámetro de recurso indica que puede usarse una cantidad
ilimitada del mismo, en el caso de parámetros de contraseña que no ha sido fijado limite.
Valor DEFAULT. Si se indica DEFAULT o se omite en el perfil algún parámetro, al ser
asignado a un usuario toma para dicho parámetro el valor indicado en el perfil DEFAULT.
Ejemplo de creación de perfil.
CREATE PROFILE perfil_2 LIMIT
FAILED_LOGIN_ATTEMPTS 5
PASSWORD_LIFE_TIME 60
PASSWORD_REUSE_TIME 60
PASSWORD_REUSE_MAX 5
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_LOCK_TIME 1/24
PASSWORD_GRACE_TIME 10;
Función de Verificación
La función de verificación de contraseña debe pertenecer al usuario
SYS. Realiza las comprobaciones:
– La contraseña satisface un mínimo de longitud.
– La contraseña no coincide con el nombre de usuario.
Puede modificarse, siempre en el esquema SYS y conectando como
CONNECT SYS/password AS SYSDBA
Modificación de Perfiles
Es necesario poseer el privilegio de sistema “ALTER PROFILE”.
Los valores modificados no afectan a las sesiones en curso.
Sintaxis:
ALTER PROFILE <perfil>
LIMIT <parámetros> <valor>/UNLIMITED/DEFAULT;
Asignación de Perfiles
▪ Los perfiles no pueden asignarse a roles ni a otros perfiles, solo a
usuarios.
▪ Se puede realizar durante la creación del usuario (CREATE USER) o
posteriormente (ALTER USER).
▪ Un usuario sólo puede tener un perfil asignado a la vez.
▪ Las asignaciones de perfiles no afectan a las sesiones activas.
Borrado de Perfiles
▪ Debe poseerse el privilegio de sistema DROP PROFILE. El perfil
DEFAULT no puede borrarse.
▪ Para eliminar un perfil asignado a un usuario debe usarse la opción
CASCADE. Si se borra un perfil asociado a un usuario, a este se le
asigna de forma automática el perfil DEFAULT.
▪ El borrado de un perfil no afecta a las sesiones en curso.
▪ Sintaxis:
DROP PROFILE <perfil>;
DROP PROFILE <perfil> CASCADE;
Vistas de Usuarios y Perfiles
Conclusiones y/o Recomendaciones

• Los DBA establecen una seguridad de base de datos inicial para los usuarios
asignándoles privilegios.
• El DBA crea usuarios que deben tener una contraseña. El DBA también es
responsable de establecer los privilegios iniciales del sistema para un usuario.
• Un DBA puede crear roles utilizando la sentencia CREATE ROLE para transferir
una recopilación de privilegios del sistema o de objeto a varios usuarios.
• Con las vistas del diccionario de datos, los usuarios pueden visualizar los
privilegios que se les han otorgado y los que se han otorgado sobre sus objetos.
• Con los enlaces de base de datos, puede acceder a datos de bases de datos
remotas. No se pueden otorgar privilegios sobre objetos remotos.
¡Gracias!

Potrebbero piacerti anche