Oracle資料庫提示密碼過期,更改密碼永不過期的一種方法。
1、檢視當前所有使用者
select username,account_status,expiry_date,profile from dba_users;
2、檢視當前使用的賬戶資料儲存(預設只有一個)
SELECT * FROM dba_profiles;
3、檢視和密碼相關的設定(複雜度,過期時間)
select * from dba_profiles where resource_type='PASSWORD';
4、檢視和密碼過期設定相關的設定
select * from dba_profiles s where s.profile='default' and resource_name='password_life_time';
5、設定使用者永不過期,影響的是所有使用者,修改之後不需要重啟動資料庫,會立即生效。
alter profile default limit password_life_time unlimited;
6、注意:
修改後,還沒有被提示ORA-28002警告的帳戶不會再碰到同樣的提示;
已經被提示的帳戶必須再改一次密碼,
語法格式:
alter user 使用者 identified by 密碼 account unlock;
7、要為某個使用者設定密碼永不過期,還可以這樣來做:
1. 新建profile "test",規則與DEFAULT一致(因為一個profile中包含很多的專案,我們此時只想修改過期規則,其他的不變)
2. 修改profile "test",修改過期規則為UNLIMITED
3. 將'admini'使用者適用新的profile "test"
CREATE PROFILE test LIMIT SESSIONS_PER_USER UNLIMITED CPU_PER_SESSION UNLIMITED CPU_PER_CALL UNLIMITED CONNECT_TIME UNLIMITED IDLE_TIME UNLIMITED LOGICAL_READS_PER_SESSION UNLIMITED LOGICAL_READS_PER_CALL UNLIMITED COMPOSITE_LIMIT UNLIMITED PRIVATE_SGA UNLIMITED FAILED_LOGIN_ATTEMPTS 10 PASSWORD_LIFE_TIME 180 PASSWORD_REUSE_TIME UNLIMITED PASSWORD_REUSE_MAX UNLIMITED PASSWORD_LOCK_TIME 1 PASSWORD_GRACE_TIME 7 PASSWORD_VERIFY_FUNCTION NULL;
4、 修改新建的profile,密碼過期為不過期
ALTER profile VPXADMIN_UNLIMIT limit PASSWORD_LIFE_TIME UNLIMITED;
5、如需更改新建的profile,密碼過期的時間:
alter profile test limit PASSWORD_LIFE_TIME 60 ;
6、更改admini使用者的 profile設定為test
alter user admini profile test;
Oracle密碼複雜度設定(Oracle_Password_Complexity)
一、Oracle_Password_Complexity:
SQL> alter system set resource_limit = true;
SQL> @ $ORACLE_HOME/RDBMS/ADMIN/utlpwdmg.sql → [verify_function|verify_function_11G]
SQL> alter profile default limit password_verify_function verify_function;
# 取消Oracle密碼複雜度檢查:
SQL> alter profile default limit password_verify_function null;
SQL> SELECT profile,resource_type,resource_name,limit FROM dba_profiles WHERE resource_type='PASSWORD' AND profile='DEFAULT';
1.FAILED_LOGIN_ATTEMPTS: 使用者在登入嘗試失敗n次後被鎖定。
2.PASSWORD_LOCK_TIME: 登入嘗試失敗達到指定次數,使用者鎖定時長,以“Day”為單位。
3.PASSWORD_LIFE_TIME: 使用者口令的生命週期。
4.PASSWORD_GRACE_TIME: 表示使用者口令使用時間超過其生命週期後,可以延續使用的天數,並且可延續時間內登入會有相應口令即將過期的提示。
5.PASSWORD_REUSE_TIME: 指定了口令不能重用前的天數。
6.PASSWORD_REUSE_MAX: 在達到PASSWORD_REUSE_TIME指定時間後,要再次使用同一口令前必須改變的次數。
如:PASSWORD_REUSE_TIME=30,PASSWORD_REUSE_MAX=10,使用者可以在30天以後重用該口令,要求口令必須被改變超過10次。
7.Oracle 11g資料庫密碼區分大小寫的設定 → SEC_CASE_SENSITIVE_LOGON = TRUE.