1. 程式人生 > >oracle 11g/12c 密碼複雜度驗證設定

oracle 11g/12c 密碼複雜度驗證設定

###############################################################################

###### 11g ######

###############################################################################

1、開啟密碼複雜度驗證函式

sqlplus / as sysdba

@?/rdbms/admin/utlpwdmg.sql

alter profile default limit password_life_time unlimited;

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

alter profile DEFAULT limit PASSWORD_LOCK_TIME UNLIMITED;

alter profile DEFAULT limit PASSWORD_GRACE_TIME UNLIMITED;

2、修改default profile的密碼策略(實際上執行utlpwdmg.sql後自動修改PASSWORD_VERIFY_FUNCTION)

alter profile default limit PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION;

3、新建system profile

create profile SYSTEM_PROFILE limit

PASSWORD_LIFE_TIME 60

PASSWORD_GRACE_TIME 90

PASSWORD_REUSE_MAX 5

PASSWORD_REUSE_TIME 60

PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION;

4、修改sys、system使用者profile

alter user sys profile SYSTEM_PROFILE;

alter user system profile SYSTEM_PROFILE;

5、驗證

set line 300

col profile for a30

col RESOURCE_NAME for a32

col RESOURCE_TYPE for a13

col LIMIT for a30

col COMMON for a8

SELECT * FROM dba_profiles order by profile;

set line 300

col username for a30

col profile for a60

SELECT username,PROFILE FROM dba_users order by created;

###############################################################################

###### 12c ######

###############################################################################

1、開啟密碼複雜度驗證函式(CDB和PDB都需要執行下面命令)

sqlplus / as sysdba

@?/rdbms/admin/utlpwdmg.sql

alter profile default limit password_life_time unlimited;

ALTER PROFILE DEFAULT LIMIT FAILED_LOGIN_ATTEMPTS UNLIMITED;

alter profile DEFAULT limit PASSWORD_LOCK_TIME UNLIMITED;

alter profile DEFAULT limit PASSWORD_GRACE_TIME UNLIMITED;

2、修改default profile的密碼策略(實際上執行utlpwdmg.sql後自動修改PASSWORD_VERIFY_FUNCTION)

alter profile default limit PASSWORD_VERIFY_FUNCTION ora12c_verify_function;

3、新建system profile(CDB執行)

create profile C##_SYSTEM_PROFILE limit

PASSWORD_LIFE_TIME 60

PASSWORD_GRACE_TIME 90

PASSWORD_REUSE_MAX 5

PASSWORD_REUSE_TIME 60

PASSWORD_VERIFY_FUNCTION ora12c_verify_function;

4、修改sys、system使用者profile(CDB執行)

alter user sys profile C##_SYSTEM_PROFILE;

alter user system profile C##_SYSTEM_PROFILE;

5、驗證(CDB和PDB都需要驗證)

set line 300

col profile for a30

col RESOURCE_NAME for a32

col RESOURCE_TYPE for a13

col LIMIT for a30

col COMMON for a8

SELECT * FROM dba_profiles where profile in ('DEFAULT','C##_SYSTEM_PROFILE') order by profile;

set line 300

col username for a30

col profile for a60

SELECT username,PROFILE FROM dba_users order by created;

ora12c_verify_function:

This function is the new 12c password verify function.

It enforce a similar respectively slightly stronger password complexity as verify_function_11G.

verify_function_11G just checked for DB_NAME or ORACLE with 1 to 100 attached. e.g. oracle1 or oracle83.

With the new function DB_NAME or ORACLE may not be part of the password at all.

The following is verified:

Password at least 8 characters

at least 1 letters

at least 1 digits

must not contain database name

must not contain user name or reverse user name

must not contain oracle

must not be too simple like welcome1

password must differ by at least 3 characters from the old password

ora12c_strong_verify_function:

This function is provided to give stronger password complexity.

It considers recommendations of the Department of Defense Database (STIG) with the following limits.

Password at least 9 characters

at least 2 capital letters

at least 2 small letters

at least 2 digits

at least 2 special characters

password must differ by at least 4 characters from the old password