Está en la página 1de 56

Administración I – Módulo 7

Objetivos

 Crear y administrar usuarios


 Asignar y revocar privilegios
 Crear y administrar roles
 Crear y administrar perfiles
Cuentas de usuario de la Base de Datos
 Para establecer una conexión el usuario
debe conectarse con una cuenta de usuario

 Cada cuenta de usuario tiene:

 Nombre de usuario
 Método de autenticación
 Tablespace por defecto
 Tablespace temporario
 Perfil de usuario
 Estado de la cuenta
Nombre de Usuario
 Debe ser único
 Debe empezar con una letra
 No más de 30 caracteres
 Puede consistir en letras, dígitos, caracter $
y_
 No puede ser una palabra reservada
 Las letras se convierten a mayúsculas
 Si se utiliza “” pueden romperse las reglas
anteriores
Tablespace por Defecto y Temporario
 Por defecto: es el tablespace donde van a
parar los objetos creados por el usuario si
no especifica explícitamente en la creación

 Temporario: Es el tablespace donde van a


parar los ordenamientos y tablas temporarias
del usuario
Perfil de usuario
Al usuario se le define un perfil para:

 Controlar su consumo de recursos del


sistema(CPU, memoria, disco, tiempos,
etc)

 Administrar el estado de su cuenta y el


seteo/expiración de passwords
Estado de la cuenta
Cada cuenta puede tener uno de los siguientes
estados:

 OPEN
 LOCKED
 EXPIRED
 EXPIRED & LOCKED
 EXPIRED (GRACE)
 LOCKED (TIMED)
 EXPIRED & LOCKED (TIMED)
 EXPIRED (GRACE) & LOCKED
 EXPIRED (GRACE) & LOCKED (TIMED)
Métodos de Autenticación
 Es la manera que la base determina si el usuario
que intenta conectarse está habilitado para hacerlo

 Cada cuenta de usuario debe tener un método de


autenticación, este puede ser:

 Por sistema operativo


 Password file
 Password
 External
 Global
Autenticación por Sistema Operativo y
Archivo de Passwords
Estos métodos se utilizan cuando hay cuentas
que tienen el privilegio SYSDBA o SYSOPER

 Autenticación por Archivo de Password:

 connect user/pass[@connect_alias] as sysdba


 connect user/pass[@connect_alias] as sysoper

 Autenticación por Sistema Operativo:

 connect / as sysdba
 connect / as sysoper
Autenticación por Password
La instancia valida la password en el diccionario
de datos

 Sintáxis de conexión para autenticación por password:

 connect user/pass[@connect_alias]

 Cláusula a utilizar en el CREATE USER:

 IDENTIFIED BY password
Autenticación Externa y Global
 Externa: Oracle delega la autenticación a un método externo de la base a la base, puede ser:

 Sistema Operativo
 Servicios de Autenticación de red (Radius, Kerberos)

 Global: Oracle delega la autenticación a un LDAP Directory Server

 En este tipo de logins no se utiliza password


Sentencia CREATE USER

CREATE USER username


IDENTIFIED {BY password |
EXTERNALLY|
GLOBALLY AS externa_name}
[ DEFAULT TABLESPACE tablespace ]
[ TEMPORARY TABLESPACE tablespace ]
[ QUOTA {entero [K|M] | UNLIMITED } ON tablespace
[ QUOTA {entero [K|M] | UNLIMITED } ON tablespace]...]
[ PASSWORD EXPIRE ]
[ ACCOUNT { LOCK | UNLOCK }]
[ PROFILE { profile | DEFAULT }]
Ejemplo de Creación de Usuarios

CREATE USER peter


IDENTIFIED BY soccer
PASSWORD EXPIRE;

DEFAULT TABLESPACE data


TEMPORARY TABLESPACE temp
QUOTA 15M ON data
QUOTA 10M ON users
PASSWORD EXPIRE;
Sentencia ALTER USER
ALTER USER peter IDENTIFIED BY lion ACCOUNT
UNLOCK;
ALTER USER peter
DEFAULT TABLESPACE hr_data
TEMPORARY TABLESPACE hr_temp;

ALTER USER peter QUOTA UNLIMITED ON hr_data;

ALTER USER peter PROFILE prod_profile;

ALTER USER peter PASSWORD EXPIRE;

ALTER USER peter ACCOUNT UNLOCK;


Sentencia DROP USER
 Utilice la sentencia DROP para eliminar un
usuario

DROP USER peter;

 Utilice la cláusula CASCADE para borrar todos


los objetos, si dicho esquema contiene objetos

DROP USER peter CASCADE;


Obtención de Información acerca de los
Usuarios
Consulte las siguientes vistas para obtener
información acerca de los usuarios:

 DBA_USERS
 DBA_TS_QUOTAS
Ejercicios
Privilegios
Un privilegio es el permiso de ejecutar un tipo
de sentencia SQL particular o acceder al objeto
de otro usuario, se dividen en dos categorías:

 Privilegios de Sistema: habilitan acciones


particulares sobre la base de datos

 Privilegios de Objeto: habilitan acceder o


manipular objetos específicos
Privilegios de Sistema
Categoría Ejemplos  
INDEX CREATE ANY INDEX
ALTER ANY INDEX
DROP ANY INDEX
TABLE CREATE TABLE
CREATE ANY TABLE
ALTER ANY TABLE
DROP ANY TABLE
SELECT ANY TABLE
UPDATE ANY TABLE
DELETE ANY TABLE
SESSION CREATE SESSION
ALTER SESSION
RESTRICTED SESSION
TABLESPACE CREATE TABLESPACE
ALTER TABLESPACE
DROP TABLESPACE
UNLIMITED TABLESPACE
Otorgamiento de Privilegios de Sistema
 Utilice la sentencia GRANT para otorgar
privilegios de Sistema
 Con la opción ADMIN se le otorga además el
privilegio de asignar el permiso a otros

GRANT CREATE SESSION TO peter;

GRANT CREATE SESSION TO peter WITH ADMIN OPTION;


Revocación de Privilegios de Sistema
 Utilice la sentencia REVOKE para revocar
privilegios de Sistema
 Los usuarios que dispongan de la opción
ADMIN OPTION para el privilegio pueden
revocar el privilegio

REVOKE CREATE SESSION FROM peter;


Revocación de Privilegios del Sistema
con ADMIN OPTION
DBA Peter Emi

GRANT

DBA Peter Emi


REVOKE

REVOKE CREATE
SESSION FROM peter;
Privilegios de Objeto
Es un derecho a realizar una acción específica
sobre un objeto

Priv. de objeto Tabla Vista Secuencia Procedimiento


ALTER   
DELETE  
EXECUTE 
INDEX  
INSERT  
REFERENCES 
SELECT   
UPDATE  
Otorgamiento de Privilegios de Objeto
 Utilice la sentencia GRANT para otorgar
privilegios de objeto
 Con la opción GRANT se le otorga además el
privilegio de asignar el permiso a otros

GRANT EXECUTE ON dbms_output TO peter;

GRANT UPDATE ON emi.customers TO peter WITH


GRANT OPTION;
Revocación de Privilegios de Objeto
 Utilice la sentencia REVOKE para revocar
privilegios de objeto
 El usuario que revoca el privilegio debe ser
el otorgante original del permiso de objeto
a revocar

REVOKE SELECT ON emi.orders FROM peter;


Revocación de Privilegios de Objeto
con GRANT OPTION

Bob Peter Emi


GRANT

REVOKE Bob Peter Emi


Obtención de Información acerca de los
Privilegios
Consulte las siguientes vistas para obtener información
acerca de los privilegios:

 DBA_SYS_PRIVS

 SESSION_PRIVS

 DBA_TAB_PRIVS

 DBA_COL_PRIVS
Ejercicios
Roles
 Son grupos de privilegios de sistema y/o de
objetos que pueden ser granteados y
revocados como una unidad

 Ventajas:

 Simplifican la gestión de privilegios


 Gestión dinámica de privilegios
 Se pueden activar y desactivar los roles
de forma temporal
Sentecia CREATE ROLE
 Rol que no requiere autenticación al activarlo:
CREATE ROLE oe_clerk;

 Rol que requiere contraseña para activarlo:


CREATE ROLE hr_clerk IDENTIFIED BY bonus;

 Rol con autenticación externa, un servicio


externo debe autorizar al usuario para pode
activarlo:
CREATE ROLE hr_manager IDENTIFIED EXTERNALLY;
Roles Predefinidos
Nombre del Rol Description
CONNECT, Estos roles se proporcionan para
RESOURCE, DBA que haya compatibilidad con
versiones anteriores
Privilegios para exportar
EXP_FULL_DATABASE la base de datos
Privilegios para importar
IMP_FULL_DATABASE la base de datos
Privilegios DELETE en
DELETE_CATALOG_ROLE tablas del diccionario de datos

Privilegio EXECUTE en
EXECUTE_CATALOG_ROLE paquetes del diccionario de datos

Privilegio SELECT en tablas


del diccionario de datos
SELECT_CATALOG_ROLE
Modificación de Roles
La sentencia ALTER ROLE modifica el método
de autenticación o la password del rol

ALTER ROLE oe_clerk


IDENTIFIED BY order;

ALTER ROLE hr_clerk


IDENTIFIED EXTERNALLY;

ALTER ROLE hr_manager


NOT IDENTIFIED;
Asignación de privilegios a los Roles
Utilice el comando GRANT para asignar
privilegios de sistema o de objeto a un rol

GRANT create session TO hr_clerk;

GRANT select on hr.employees TO hr_clerk;


Asignación de Roles
Utilice el comando GRANT para asignar un rol

GRANT oe_clerk TO scott;

GRANT hr_clerk TO hr_manager;

GRANT hr_manager TO scott WITH ADMIN OPTION;


Establecimiento de Roles por Defecto
 Roles por defecto son los roles asignados al
usuario que se activan automáticamente en
el momento de conectarse
 Deben haberse otorgado previamente con la
sentencia GRANT
ALTER USER scott
DEFAULT ROLE hr_clerk, oe_clerk;

ALTER USER scott DEFAULT ROLE ALL;

ALTER USER scott


DEFAULT ROLE ALL EXCEPT hr_clerk;

ALTER USER scott DEFAULT ROLE NONE;


Activación y Desactivación temporaria
de Roles
 El comando SET ROLE activa y desactiva roles
dentro de una sesión

 Desactive un rol para revocarlo temporalmente


de un usuario

 Active un role para otorgarlo temporalmente

 Según el método de autenticación del rol se


puede necesitar una password o una
autorización externa a la base para activar
un rol
Activación y Desactivación de Roles
SET ROLE hr_clerk;

SET ROLE oe_clerk IDENTIFIED BY order;

SET ROLE ALL EXCEPT oe_clerk;

SET ROLE NONE;


Uso de Roles con Contraseñas y Roles
por Defecto

Protegido por
contraseña (dentro Rol por defecto
de la aplicación se
activa el rol usando
contraseña)

PAY_CLERK PAY_CLERK_RO

Privilegios INSERT, UPDATE, Privilegios de


DELETE y SELECT SELECT
Revocación de Roles a Usuarios
• La revocación de roles a los usuarios requiere
la opción ADMIN OPTION o el privilegio GRANT
ANY ROLE

• Para revocar un rol:

REVOKE oe_clerk FROM scott;

REVOKE hr_manager FROM PUBLIC;


Eliminación de Roles
 Requiere la opción ADMIN OPTION o el
privilegio DROP ANY ROLE

 Para borrar un rol:

DROP ROLE hr_manager;


Ejercicios
Perfiles de Usuario

Un perfil tiene 2 funciones:

 Forzar políticas de gestión de


passwords

 Restringir el uso de recursos del


Sistema
Perfil DEFAULT
 Cuando se crea la base de datos se crea
automáticamente el perfil DEFAULT

 Los usuarios que no se asignan


explícitamente a un perfil concreto tienen
asignado el perfil DEFAULT

 Todos los límites del perfil DEFAULT son


ilimitados inicialmente, pero pueden
modificarse
Sentencia CREATE PROFILE
Usar la sentencia CREATE PROFILE para crear
un perfil
Gestión de Passwords

Historial de Bloqueo de
passwords cuentas

Usuario Configuración
de perfiles

Vencimiento y Verificación de
expiración complejidad de
de passwords passwords
Bloqueo de Cuentas de Usuario

Parámetro Descripción
FAILED_LOGIN_ATTEMPTS Número de intentos de conexión
fallidos antes de que se bloquee la
cuenta
PASSWORD_LOCK_TIME Número de días que está bloqueada
la cuenta después del número
especificado de intentos de conexión
fallidos
Vencimiento y Expiración de Passwords

Parámetro Parámetro
PASSWORD_LIFE_TIME Días de duración de la password,
después de los cuales vence

Días del período de gracia para


PASSWORD_GRACE_TIME cambiar la password después de la
primera conexión correcta, una vez
que la password ha vencido
Historial de Passwords
Parámetro Descripción
PASSWORD_REUSE_TIME Número de días que deben transcurrir
para que una password se pueda
volver a utilizar
PASSWORD_REUSE_MAX Número máximo de cambios necesarios
Para que una password se pueda volver
a utilizar
Verificación de Passwords
Parámetro Descripción
PASSWORD_VERIFY_FUNCTION Función PL/SQL que realiza una
comprobación de complejidad de
la password antes de asignarla

• Oracle Server provee 2 funciones de


verificación de complejidad de password:
• VERIFY_FUNCTION
• VERIFY_FUNCTION_11G

• Estas funciones se crean con el script


$ORACLE_HOME/rdbms/admin/utlpwdmg.sql
Gestión de Recursos a nivel de Sesión
Recurso Descripción
CPU_PER_SESSION Total de tiempo de CPU en centésimas
de segundos
SESSIONS_PER_USER Número de sesiones simultáneas que se
permiten para cada nombre de usuario
CONNECT_TIME Tiempo de conexión transcurrido en
minutos
IDLE_TIME Períodos de tiempo de inactividad en
minutos
LOGICAL_READS_PER Número de bloques de datos (lecturas
_SESSION físicas y lógicas)
PRIVATE_SGA Espacio privado en la SGA en bytes
(sólo para servidor compartido)
Gestión de Recursos a nivel de Llamada

Recurso Descripción

CPU_PER_CALL Tiempo de CPU por cada llamada en


centésimas de segundos

LOGICAL_READS_PER_CALL Número de bloques de datos que se


pueden leer en cada llamada
Creación de un Perfil
CREATE PROFILE app_user
LIMIT FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_LIFE_TIME 30
PASSWORD_REUSE_TIME 30
PASSWORD_VERIFY_FUNCTION verify_function
PASSWORD_GRACE_TIME 5
SESSIONS_PER_USER 2
CPU_PER_SESSION UNLIMITED
IDLE_TIME 60
CONNECT_TIME 480;
Asignación de un Perfil a un Usuario
 Los perfiles se asignan a los usuarios
mediante los comandos CREATE USER
o ALTER USER

CREATE USER peter


. . . . . .
PROFILE app_user;

ALTER USER peter PROFILE app_user;


Activación de Límites de Recursos
 Para activar el forzado de los límites
de recursos a tráves de perfiles se debe
setear el parámetro de inicio
RESOURCE_LIMIT=TRUE

 Se puede modificar con ALTER SYSTEM


Modificación de un Perfil
 Utilice el comando ALTER PROFILE
para modificar un perfil

ALTER PROFILE app_user


LIMIT FAILED_LOGIN_ATTEMPTS 3
PASSWORD_LIFE_TIME 60
PASSWORD_GRACE_TIME 10
IDLE_TIME 30;
Borrado de un Perfil
 Borre el perfil con el comando DROP
PROFILE
 CASCADE revoca el perfil al usuario
al que se había asignado

DROP PROFILE app_user;

DROP PROFILE app_user CASCADE;


Ejercicios

También podría gustarte