DBAtlas · Atlas d'exploitation des bases de données

Créer un profil de politique de mots de passe et l'attribuer aux utilisateurs

OracleSécurité

Commande

-- 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;

Ce que fait la commande

Un profil applique à un groupe d'utilisateurs des règles de verrouillage après échecs de connexion, de durée de vie, de réutilisation et de complexité (verify function) des mots de passe, et de verrouillage des comptes inactifs. PASSWORD_ROLLOVER_TIME permet aux applications de basculer sans interruption pendant le changement du mot de passe d'un compte de service.

Quand l'utiliser

Pour les exigences d'audit de sécurité/CIS benchmark, lors de la création de nouveaux utilisateurs applicatifs, et pour séparer par groupe d'utilisateurs les valeurs laxistes du profil DEFAULT.

Attention

Aucune licence supplémentaire. Une limite FAILED_LOGIN_ATTEMPTS sur un compte de service permet à un seul serveur d'application avec un mauvais mot de passe de verrouiller le compte et de provoquer une interruption de production. PASSWORD_LIFE_TIME sur les comptes applicatifs peut provoquer un état EXPIRED inattendu. La verify function doit exister sous SYS (sinon @?/rdbms/admin/utlpwdmg.sql ; ce script modifie aussi le profil DEFAULT). Changer de profil ne revalide pas les mots de passe existants.

Ouvrir dans DBAtlas →

Voir aussi