0

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;

私が見つけていない/理解していないのは何ですか?

4

1 に答える 1

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.
于 2012-12-18T15:44:33.033 に答える