[26ai] Mandatory Profile
![[26ai] Mandatory Profile](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fres%2Fhashnode%2Fimage%2Fupload%2Fv1769696516840%2F41345bc4-94f0-4d5e-8288-15ca1f814db9.png&w=3840&q=75)
El artículo también se encuentra publicado en Ingles English version.
En este pequeño artículo vamos a ver los Mandatory Profile.
Aunque no es una novedad en 26ai, sino que fue en la 21c, vamos a proceder a configurarlo en la última release de Oracle.
Este tipo de Profile pueden ser creados dentro de CDB$Root para luego asignarse a las distintas PDBs. Otro punto a tener en cuenta, es que si necesitamos modificarlos, debemos realizarlo a nivel de CDB$ROOT, no de PDB, usando common users, no local users.
Además, las políticas definidas en el Profile se aplicarán a todos los usuarios de la PDB.
¿Qué parámetros puedo usar? A diferencia de un Profile, donde tenemos multitud de parámetros para configurar, aquí solo podemos definir dos, son:
Password_verify_function para forzar la complejidad de la contraseña por medio de la función que tenga asignada. Valor por defecto es null.
Password_grace_time permite especificar un periodo de gracia para aquellas cuentas que violen la complejidad de las contraseñas. Valor por defecto es 0.
Lo primero que vamos hacer es definir la función que asignaremos al parámetro password_verify_function.
SQL>
CREATE OR REPLACE FUNCTION VALIDATION_BUSINESS(username varchar2,
password varchar2,
old_password varchar2)
return boolean IS
BEGIN
if not ora_complexity_check(password, chars => 8, digit => 4) then
return(false);
end if;
return(true);
END;
/
Function created.
Cómo podemos ver, estoy definiendo la función VALIDATION_BUSINESS dentro de CDB$Root con el objetivo de que todas las contraseñas de los usuarios tengan al menos una longitud de 8 caracteres “chars => 8” y 4 dígitos “digit=>4“.
Definimos el Mandatory Profile usando los siguientes parámetros:
PASSWORD_VERIFY_FUNCTION para asignarle la función que hemos creado en el punto anterior.
PASSWORD_GRACE_TIME para dar al usuario un periodo de gracia de 5 días para cambiar la contraseña.
SQL>
CREATE MANDATORY PROFILE C##VALIDATION_BUSINESS
LIMIT
PASSWORD_VERIFY_FUNCTION VALIDATION_BUSINESS
PASSWORD_GRACE_TIME 5
CONTAINER = ALL;
Profile created.
Como último paso sería modificar el parámetro MANDATORY_USER_PROFILE.
Aquí podemos hacer dos cosas, si queremos que el cambio afecte a todas las PDB, debemos ajustar ese parámetro a nivel de CDB$ROOT; pero si queremos que solo se aplique a una PDB específica, entonces debemos modificarlo directamente dentro de esa PDB.
SQL> show parameter MANDATORY_USER_PROFILE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
mandatory_user_profile string
SQL> ALTER SYSTEM SET MANDATORY_USER_PROFILE=C##VALIDATION_BUSINESS;
System altered.
SQL> show parameter MANDATORY_USER_PROFILE
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
mandatory_user_profile string C##VALIDATION_BUSINESS
Espero que os guste. ¡Nos vemos en el próximo artículo!
![[26ai] Hybrid Read-Only Mode PDB](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fde208bd2-5e24-4fd3-acf7-8e5394d95283.png&w=3840&q=75)
![[26ai] ALERT_LOG_MAX_SIZE](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fcbb365d0-4428-4a41-930d-516ce59e3355.jpg&w=3840&q=75)
![[26ai] ConnStr Tool](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F5005f06e-946c-49ba-bfe8-7fe18d1075d9.png&w=3840&q=75)
![[26ai] Instalación de Oracle26ai en Linux 9](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2Fd9a6ba10-eb2d-4fee-8a0c-f4957cbdc676.png&w=3840&q=75)
![[OCI] Montaje de un Bucket como un FS](/_next/image?url=https%3A%2F%2Fcdn.hashnode.com%2Fuploads%2Fcovers%2F65605419d28f19cc44df7ef1%2F05595570-0fbd-46ce-9db4-d2f0e9f09003.png&w=3840&q=75)