Создать профиль с политикой паролей и назначить его пользователям
OracleБезопасностьКоманда
-- 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;Что делает
Профиль применяет к группе пользователей правила блокировки после неудачных входов, срока действия пароля, повторного использования, сложности (verify function) и блокировки неактивных учётных записей. PASSWORD_ROLLOVER_TIME позволяет приложениям переключиться без простоя при смене пароля сервисной учётной записи.
Когда использовать
Для требований аудита безопасности/CIS benchmark, при создании новых пользователей приложений и чтобы отделить мягкие значения профиля DEFAULT по группам пользователей.
Внимание
Дополнительная лицензия не нужна. Лимит FAILED_LOGIN_ATTEMPTS на сервисной учётной записи позволяет одному серверу приложений с неверным паролем заблокировать учётную запись и вызвать простой production. PASSWORD_LIFE_TIME на учётных записях приложений может привести к неожиданному статусу EXPIRED. Функция verify должна существовать под SYS (иначе @?/rdbms/admin/utlpwdmg.sql; этот скрипт также изменяет профиль DEFAULT). Смена профиля не перепроверяет существующие пароли.
Связанные материалы
- Создать и открыть keystore TDE, задать мастер-ключ и сделать бэкап (19c+)
- Зашифровать табличные пространства через TDE (новые и существующие, онлайн/офлайн)
- Создать политику Unified Auditing, включить её с условием, просмотреть записи, удалить
- Добавить политику доступа на уровне строк через VPD (DBMS_RLS)
- Найти неиспользуемые привилегии с помощью privilege analysis