密码_verify_function没用过?

时间:2012-05-15 02:31:31

标签: database oracle database-security lockdown

我们正在尝试保护oracle实例,并且默认密码验证功能不符合确定的确切规范。

sys编写并编译了一个新函数。这也被设置为“DEFAULT”配置文件password_verify_function

alter profile default limit
    password_verify_function custom_function;

但是,创建新用户时,似乎不会进行密码验证。在编译函数期间,我没有收到任何警告或错误。这就是创建用户的方式:

create user stackoverflowexample
    identified by easy
    default tablespace encrypted_ts
    quota unlimited on encrypted_ts
    profile default;

我找不到/理解的是什么?

1 个答案:

答案 0 :(得分:0)

无法重现:

CREATE OR REPLACE FUNCTION custom_function (
   username VARCHAR2, password VARCHAR2, old_password varchar2) RETURN BOOLEAN 
AS
BEGIN
  IF password IS NULL OR length(password) < 10 THEN
    RAISE_APPLICATION_ERROR(-20001, 'Password length less than 10.');
  ELSE
    RETURN TRUE;
  END IF;
END custom_function;
/
-- FUNCTION CUSTOM_FUNCTION compiled

ALTER PROFILE DEFAULT LIMIT PASSWORD_VERIFY_FUNCTION custom_function;
-- profile DEFAULT altered.

CREATE USER stackoverflowexample IDENTIFIED BY easy;
-- SQL Error: ORA-28003: password verification for the specified password failed

CREATE USER stackoverflowexample IDENTIFIED BY easy567890;
-- user STACKOVERFLOWEXAMPLE created.