Vous êtes sur la page 1sur 6

PERFIL DE USUARIO EN ORACLE

DEFINICION:
Los perfiles se utilizan para limitar la cantidad de recursos del sistema y de la Base de Datos
disponibles para un usuario. Si no se definen perfiles para un usuario se utiliza el perfil por
defecto, que especifica recursos ilimitados.
En general, el perfil por defecto debe ser adecuado para los usuarios normales; los usuarios
con requerimientos especiales deberan tener perfiles especiales.
La forma en que funciona un perfil, es que al mismo se le asignan valores que sern los
lmites para modelar el comportamiento del usuario o esquema al que ser asignado.
Un lmite puede ser la cantidad de segundos que el usuario estar sin realizar actividades en
la base de datos antes de ser desconectado. Otro lmite, puede ser la cantidad de intentos
fallidos de conexin por contrasea incorrecta. Los profiles existen desde la versin 7 de la
base de datos, prcticamente con la misma estructura.

CREAR UN PERFIL DE USUARIO


Para crear un perfil, se requiere tener el privilegio CREATE PROFILE asignado en el usuario
que lo quiere crear, y se usa el siguiente comando:
Sintaxis:
1) CREATE PROFILE < NOMBRE PERFIL > LIMIT;

2) CREATE PROFILE < NOMBRE PERFIL > LIMIT < NOMBRE DE LOS LIMITES >
< ENTERO | UNLIMITED | DEFAULT>;

Ejemplo:
SQL> CREATE PROFILE PR_PRUEBA LIMIT
SESSIONS_PER_USER 2
IDLE_TIME 5
CONNECT_TIME 10;

Consultaparaverificar:
SQL> SELCET * FROM DBA_PROFILES
WHERE PROFILE = 'PR_PRUEBA';
PROFILE
RESOURCE_NAME
RESOURCE LIMIT
------------------------------ -------------------------------- -------- -------------------------------------PR_PRUEBA COMPOSITE_LIMIT
KERNEL
DEFAUL
PR_PRUEBA
SESSIONS_PER_USER
KERNEL
2
PR_PRUEBA
IDLE_TIME
KERNEL
5
PR_PRUEBA
CONNECT_TIME
KERNEL
10

En el ejemplo anterior he creado perfil simple que se encargar

SESSIONS_PER_USER <<< yo soy capaz de abrir 2 sesiones concurrentes


IDLE_TIME <<< Mi sesin ser termina automticamente despus del tiempo
especificado para este parmetro.
CONNECT_TIME <<< Ser mantenerme en lnea hasta que el valor de este parmetro.

POR DEFAULT cada perfil creado tiene todos los lmites posibles del mismo de acuerdo a la
versin de la base de datos. Existe un perfil llamado DEFAULT, el cual regir a todos los
usuarios de la base de datos, mientras no sea creado uno nuevo y asignado a un usuario en
especial. En el perfil creado los lmites que no sean asignados con un valor predefinido
tendrn el valor del perfil default de la base de datos.

ASIGNAR PERFIL
Perfil se puede asignar de dos maneras, ya sea durante la creacin de un
USUARIO o mediante el uso de ALTER USER.
Caso 1:

SQL> CREATE USER USER_PRUEBA IDENTIFIED BY PASSWORD PROFILE PR_PRUEBA;

Podemos comprobarlo mediante el uso de esta consulta.

SQL>SELECT USERNAME, PROFILE


FROM DBA_USERS
WHERE USERNAME = 'USER_PRUEBA';

USERNAME
PROFILE
------------------------------ -------------ORAFAQ
MY_PROFILE

Caso 2:

SQL>CREATE USER USER_PRUEBA IDENTIFIED BY PASSWORD;


SQL>ALTER USER USER_PRUEBA PROFILE PR_PRUEBA;

QUITAR PERFIL AL USUARIO


Para quitar la asignacin del perfil, se tendr que asignar el perfil default al usuario.
Ejemplo:
SQL>ALTER USER USER_PRUEBA PROFILE DEFAULT;

MODIFICAR LIMITE EN UN PERFIL


Los perfiles pueden ser alterados con el comando ALTER PROFILE.
Un DBA debe tener el privilegio de sistema ALTER PROFILE para utilizar este comando.
Cuando se ajusta un lmite de perfil, la nueva configuracin anula la configuracin anterior
para el lmite, pero estos cambios no afectan a las sesiones actuales en proceso. Vea el
siguiente ejemplo

SQL> ALTER PROFILE PR_PRUEBA LIMIT PASSWORD_LIFE_TIME 30;

Comprobarlo con una consulta:

SQL> SELECT * FROM DBA_PROFILES


WHERE PROFILE = 'LIM_PRUEBA'
ORDER BY RESOURCE_NAME;

PR_PRUEBA COMPOSITE_LIMIT
KERNEL
DEFAUL
PR_PRUEBA
SESSIONS_PER_USER
PR_PRUEBA
IDLE_TIME
PR_PRUEBA
CONNECT_TIME
.
.
PR_PRUEBA
PASSWORD_LIFE_TIME
PASSWORD 30

KERNEL
KERNEL
KERNEL

2
5
10

ELIMINAR PERFIL
Perfiles que no necesita se pueden quitar con el comando DROP PERFIL.

El perfil predeterminado no se puede quitar.

La clusula CASCADE revoca el perfil de cualquier cuenta de usuario al que se le


asign - la clusula CASCADE debe utilizarse si el perfil se ha asignado a ninguna
cuenta de usuario.

Cuando se cae un perfil, cualquier cuenta de usuario con ese perfil se reasigna el
perfil predeterminado. Consulte el siguiente ejemplo:

SQL> DROP PROFILE PR_PRUEBA;


ERROR at line 1:
ORA-02382: PR_PRUEBA ACCOUNTANT has users assigned, cannot drop without CASCADE
SQL> DROP PROFILE PR_PRUEBA CASCADE;

COMO SE ALMACENANA LOS PERFILES?


Slo hay dos tipos de recursos, "kernel" y "contrasea"; y 16 nombres de recursos que se
pueden dar un lmite; el lmite en el perfil DEFAULT est escrito en la tercera columna (a
partir de 11gR2):

RESOURCE_NAME Resource_type LMITE


--------------------------- ------------- ------- ------COMPOSITE_LIMIT KERNEL ILIMITADO
CONNECT_TIME KERNEL ILIMITADO
CPU_PER_CALL KERNEL ILIMITADO
CPU_PER_SESSION KERNEL ILIMITADO
IDLE_TIME KERNEL ILIMITADO
LOGICAL_READS_PER_CALL KERNEL ILIMITADO
LOGICAL_READS_PER_SESSION KERNEL ILIMITADO
PRIVATE_SGA KERNEL ILIMITADO
SESSIONS_PER_USER KERNEL ILIMITADO

FAILED_LOGIN_ATTEMPTS CONTRASEA 10
CONTRASEA PASSWORD_GRACE_TIME 7
PASSWORD_LIFE_TIME CONTRASEA ILIMITADO
PASSWORD_LOCK_TIME CONTRASEA 1
PASSWORD_REUSE_MAX CONTRASEA ILIMITADO
PASSWORD_REUSE_TIME CONTRASEA ILIMITADO
PASSWORD_VERIFY_FUNCTION CONTRASEA NULL

LMITES APLICABLES A PERFILES

COMPOSITE_LIMIT: Suma maxima de CPU_PER_SESSION, CONNECT_TIME,


LOGICAL_READS_PER_SESSION y
PRIVATE_SGA: Si este lmite es excedido, Oracle aborta la sesin y regresa un
error.
CONNECT_TIME: Tiempo permitido de conexin por sesin en minutos.
CPU_PER_CALL: Mximo tiempo de CPU por llamada en centsimas de segundo.
CPU_PER_SESSION: Mximo tiempo de CPU por sesin en centsimas de segundo.
IDLE_TIME: Tiempo mximo permitido sin actividad por el usuario antes de ser
desconectado. Se expresa en minutos.
LOGICAL_READS_PER_CALL: Mximo nmero de bloques de base de datos ledos por
llamada.
LOGICAL_READS_PER_SESSION: Mximo nmero de bloques de base de datos ledos por
sesin.
PRIVATE_SGA: Mxima cantidad de bytes de espacio privado reservado en la SGA. Se
puede expresar en el formato enteroK para kilobytes o enteroM para megabytes.
SESSIONS_PER_USER: Mximo nmero de sesiones concurrentes permitidas por
usuario.
FAILED_LOGIN_ATTEMPTS: Nmero de intentos fallidos de conexin de un usuario,
antes de que Oracle ponga la cuenta bloqueada.
PASSWORD_GRACE_TIME: Nmero de das de gracia para realizar un cambio de
password de nuestra cuenta. Si en el periodo de tiempo delimitado no fue
cambiado el password, el password expira.
PASSWORD_LIFE_TIME: Nmero de das de vida de un password.
PASSWORD_LOCK_TIME: Nmero de das que permanecer bloqueado un usuario despus
de rebasar el lmite FAILED_LOGIN_ATTEMPTS.

PASSWORD_REUSE_MAX: Nmero de veces que debe cambiar una contrasea antes de


poder ser re-usada la original.
PASSWORD_REUSE_TIME: Nmero de das que tienen que pasar para poder re-usar un
password.
PASSWORD_VERIFY_FUNCTION: En este parmetro, se puede especificar un script para
validar el password. Por ejemplo, que tenga una determinada cantidad de
caracteres, que tenga letras y nmeros, etctera.

Vous aimerez peut-être aussi