Вы можете следовать рекомендациям в Oracle Support. Doc ID 419942.1
. Вы можете создать триггер, чтобы запретить изменение пароля.
CREATE or REPLACE TRIGGER pass_change
AFTER ALTER on database
BEGIN
IF ora_sysevent='ALTER' and ora_dict_obj_type = 'USER' and ora_des_encrypted_password is not null
THEN
RAISE_APPLICATION_ERROR(-20003, 'You are not allowed to alter password user.');
END IF;
END;
/
Или вы можете создать триггер, чтобы каждое изменение регистрировалосьв какую-то вспомогательную таблицу:
CREATE or REPLACE TRIGGER log_pass_change
AFTER ALTER on database
BEGIN
IF ora_sysevent='ALTER' and ora_dict_obj_type = 'USER' and ora_des_encrypted_password is not null
THEN
INSERT INTO ....
END IF;
END;
/