oracle用戶修改密碼策略---修改過期時間及錯誤次數


 

 首先了解下下面幾個參數大致是做什么的

SQL> select * from dba_profiles;

 

PROFILE                        RESOURCE_NAME                    RESOURCE LIMIT
------------------------------ -------------------------------- -------- -----------------
DEFAULT                        COMPOSITE_LIMIT                  KERNEL   UNLIMITED
DEFAULT                        SESSIONS_PER_USER                KERNEL   UNLIMITED
DEFAULT                        CPU_PER_SESSION                  KERNEL   UNLIMITED
DEFAULT                        CPU_PER_CALL                     KERNEL   UNLIMITED
DEFAULT                        LOGICAL_READS_PER_SESSION        KERNEL   UNLIMITED
DEFAULT                        LOGICAL_READS_PER_CALL           KERNEL   UNLIMITED
DEFAULT                        IDLE_TIME                        KERNEL   UNLIMITED          -----多少秒連續不活動的話系統自己主動斷開連接
DEFAULT                        CONNECT_TIME                     KERNEL   UNLIMITED
DEFAULT                        PRIVATE_SGA                      KERNEL   UNLIMITED
DEFAULT                        FAILED_LOGIN_ATTEMPTS            PASSWORD 3                                        -- 密碼出錯次數(超過后賬號將鎖定)
DEFAULT                        PASSWORD_LIFE_TIME               PASSWORD 180                                      -- 密碼有效期(天)
DEFAULT                        PASSWORD_REUSE_TIME              PASSWORD UNLIMITED                   -- 密碼不能重新用的天數
DEFAULT                        PASSWORD_REUSE_MAX               PASSWORD UNLIMITED                   -- 密碼重用之前修改的最少次數
DEFAULT                        PASSWORD_VERIFY_FUNCTION         PASSWORD NULL                         --密碼復雜度策略
DEFAULT                        PASSWORD_LOCK_TIME               PASSWORD 1                                        -- 超過了1天后,帳號自動解鎖
DEFAULT                        PASSWORD_GRACE_TIME              PASSWORD 7                                      -- 密碼到期提前7天提醒

 

已選擇16行。

 

一、修改密碼過期時間

1、查看當前open用戶

select username,account_status,expiry_date,profile from dba_users;

2、查看目前的密碼過期策略

select * from dba_profiles s where s.profile='DEFAULT' and resource_name='PASSWORD_LIFE_TIME';

3、修改密碼過期策略

alter profile default limit password_life_time unlimited;

4、過期的賬戶,重置密碼后期不會再過期

$sqlplus / as sysdba

alter user smsc identified by <原來的密碼> ----不用換新密碼

 

密碼過期提前多少天提示設置

 alter  profile default limit PASSWORD_GRACE_TIME 7

ORA-28002: the password will expire within 7 days

 

5.賬戶過期,必須要用戶更改密碼, 賬戶才能重新使用。

ORA-28001:the password has expired  

 

但有些時候, 因為各種原因, 我們並不知道原密碼的明文是什么,但很多時候又不能修改已有密碼,好在可以用原密碼來更改密碼。

 

在11G及之后的版本中,dba_users.password已經不再顯示用戶的密碼:

SQL> select username,ACCOUNT_STATUS from dba_users where username in ('SYSTEM','SCOTT');

 
USERNAME                       ACCOUNT_STATUS
------------------------------ --------------------------------
SCOTT                          EXPIRED
SYSTEM                                OPEN
 
SQL> select password from dba_users where username in ('SYSTEM','SCOTT');
 
PASSWORD
 
 
在系統表user$中,可以查看用戶的密碼(PASSWORD)和狀態(ASTATUS)
SQL> select user#,name,password,astatus from userwhere name in ('SYSTEM','SCOTT');
 
     USERNAME                           PASSWORD                          ASTATUS
---------- ------------------------------ ------------------------------ ----------
        83 SCOTT                          F894844C34402B67                              1
         5 SYSTEM                         2D594E86F93B17A1                              0  
 
 
可以通過上面的查詢結果,用原來的密碼來修改過期用戶的密碼:
SQL> alter user scott identified by values 'F894844C34402B67'
 
User altered.
 
SQL> select user#,name,password,astatus from userwhere name in ('SYSTEM','SCOTT');
 
     USERNAME                           PASSWORD                          ASTATUS
---------- ------------------------------ ------------------------------ ----------
        83 SCOTT                          F894844C34402B67                        0
         5 SYSTEM                         2D594E86F93B17A1                        0

 

 

其實也可以直接修改表user$的字段ASTATUS為0,這樣用戶賬號就變成open狀態了。
ASTATUS對應的值的含義可以同過user_astatus_map查看

 

SQL> select * from user_astatus_map;

 

 

二、修改密碼錯誤次數

select * from dba_profiles s where s.profile='DEFAULT' and resource_name='FAILED_LOGIN_ATTEMPTS';

 

SQL>alter profile default limit failed_login_attempts 20;    //修改為20次

 

三、添加profile文件並分配用戶

create profile profile名字 limit FAILED_LOGIN_ATTEMPTS  10 PASSWORD_LIFE_TIME  180 PASSWORD_REUSE_TIME  UNLIMITED PASSWORD_REUSE_MAX  UNLIMITED PASSWORD_VERIFY_FUNCTION null PASSWORD_LOCK_TIME 1 PASSWORD_GRACE_TIME 30;

 

alter user 用戶名 profile profile名字;

 

 密碼復雜度策略 詳見https://www.cnblogs.com/zhm1985/articles/13355814.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM