如何查找谁在oracle中更改了用户密码

时间:2018-10-04 06:34:01

标签: oracle oracle11g

最近有人更改了用户密码。所以我从dba_udit_trails和dba_audit_sessions中获取了结果,但我能够找到返回码为0(成功登录),28000(锁定)和1017(无效的用户名/密码)。 我们如何获取详细信息,更改密码的人以及是​​否有人更改密码时会提示returncode。

所有有价值的建议将不胜感激。

预先感谢

1 个答案:

答案 0 :(得分:1)

您可以遵循Oracle支持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;
/