DBAtlas · Atlas de operaciones de bases de datos

Crear un profile de política de contraseñas y asignarlo a usuarios

OracleSeguridad

Comando

-- Hardened profile for application/human users:
CREATE PROFILE app_user_prf LIMIT
  FAILED_LOGIN_ATTEMPTS    5
  PASSWORD_LOCK_TIME       1/24          -- 1 hour lock
  PASSWORD_LIFE_TIME       90
  PASSWORD_GRACE_TIME      7
  PASSWORD_REUSE_TIME      365
  PASSWORD_REUSE_MAX       10
  INACTIVE_ACCOUNT_TIME    60            -- accounts unused for 60 days are locked
  PASSWORD_VERIFY_FUNCTION ora12c_strong_verify_function;

-- Service accounts: password never expires, gradual password rollover enabled:
CREATE PROFILE service_account_prf LIMIT
  FAILED_LOGIN_ATTEMPTS    UNLIMITED
  PASSWORD_LIFE_TIME       UNLIMITED
  PASSWORD_ROLLOVER_TIME   1;            -- old and new password both valid for 1 day

ALTER USER customer_app PROFILE app_user_prf;

-- Check:
SELECT username, profile, account_status,
       TO_CHAR(expiry_date,'YYYY-MM-DD') AS expiry_date, lock_date
FROM   dba_users
WHERE  profile IN ('APP_USER_PRF', 'SERVICE_ACCOUNT_PRF');

SELECT profile, resource_name, limit
FROM   dba_profiles
WHERE  profile = 'APP_USER_PRF' AND resource_type = 'PASSWORD'
ORDER  BY resource_name;

Qué hace

Un profile aplica a un grupo de usuarios reglas de bloqueo por inicios de sesión fallidos, vigencia de la contraseña, reutilización, complejidad (verify function) y bloqueo de cuentas inactivas. PASSWORD_ROLLOVER_TIME permite que las aplicaciones cambien sin caída mientras se cambia la contraseña de una cuenta de servicio.

Cuándo usarlo

Para requisitos de auditoría de seguridad/CIS benchmark, al crear usuarios de aplicación nuevos y para separar por grupo de usuarios los valores laxos del profile DEFAULT.

Precaución

Sin licencia adicional. Un límite FAILED_LOGIN_ATTEMPTS en una cuenta de servicio permite que un solo servidor de aplicaciones con una contraseña errónea bloquee la cuenta y cause una caída en producción. PASSWORD_LIFE_TIME en cuentas de aplicación puede causar un estado EXPIRED inesperado. La verify function debe existir en SYS (si no, @?/rdbms/admin/utlpwdmg.sql; ese script también modifica el profile DEFAULT). Cambiar el profile no vuelve a validar las contraseñas existentes.

Abrir en DBAtlas →

Relacionado