您好,登錄后才能下訂單哦!
如何解讀Oracle用戶ACCOUNT_STATUS的九種狀態(tài),很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細(xì)講解,有這方面需求的人可以來學(xué)習(xí)下,希望你能有所收獲。
DBA_USERS視圖中ACCOUNT_STATUS記錄的用戶的當(dāng)前狀態(tài),一般情況下在使用的正常用戶均處于OPEN狀態(tài)。
例如我們查看sec用戶的當(dāng)前狀態(tài),此時該用戶處于OPEN狀態(tài),可以正常使用。
sys@ora10g> select username, account_status from dba_users where username = 'SEC';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SEC OPEN
1.所有用戶狀態(tài)匯總
除了常用的OPEN狀態(tài)還有哪些用戶狀態(tài)?
這個信息可以通過USER_ASTATUS_MAP獲得。
sys@ora10g> select * From USER_ASTATUS_MAP;
STATUS# STATUS
---------- --------------------------------
0 OPEN
1 EXPIRED
2 EXPIRED(GRACE)
4 LOCKED(TIMED)
8 LOCKED
5 EXPIRED & LOCKED(TIMED)
6 EXPIRED(GRACE) & LOCKED(TIMED)
9 EXPIRED & LOCKED
10 EXPIRED(GRACE) & LOCKED
9 rows selected.
用戶狀態(tài)不會超出以上九種。
2.九種狀態(tài)的分類
以上九種可以分為兩大類:1.基本狀態(tài);2.組合狀態(tài)。
前五種是基本狀態(tài):
0 OPEN
1 EXPIRED
2 EXPIRED(GRACE)
4 LOCKED(TIMED)
8 LOCKED
后四種是組合狀態(tài):
5 EXPIRED & LOCKED(TIMED)
6 EXPIRED(GRACE) & LOCKED(TIMED)
9 EXPIRED & LOCKED
10 EXPIRED(GRACE) & LOCKED
規(guī)律是這樣的:后四種的組合狀態(tài)可以通過狀態(tài)號STATUS#獲得它是哪兩種狀態(tài)的組合,例如10=2+8(10 EXPIRED(GRACE) & LOCKED = 2 EXPIRED(GRACE) + 8 LOCKED)。因此只要了解基本狀態(tài)的含義其他便可無師自通。
3.五種基本狀態(tài)的詮釋
這五種基本狀態(tài)又可以分為三類:1.正常狀態(tài);2.鎖定狀態(tài);3.密碼過期狀態(tài)。
1)OPEN狀態(tài)不用多解釋,表示用戶處于正常狀態(tài)。
2)用戶被鎖定狀態(tài),LOCKED和LOCKED(TIMED)兩種狀態(tài)都屬于鎖定狀態(tài)
用戶被鎖定一般分為兩種:一種是DBA顯式的通過SQL語句對用戶進(jìn)行鎖定;另外一種是被動的鎖定,例如默認(rèn)情況下如果密碼輸入錯誤超過10次(這個限制是由PROFILE中的FAILED_LOGIN_ATTEMPTS控制的,該信息可以通過DBA_PROFILES視圖查詢),用戶將被鎖定,有關(guān)被動鎖定的描述請參考文章《【故障】“ORACLE用戶被鎖定”故障處理和分析》(http://space.itpub.net/519536/viewspace-608769)。
(1)顯式鎖定sec用戶LOCKED狀態(tài)演示
sys@ora10g> alter user sec account lock;
User altered.
sys@ora10g> select username, account_status from dba_users where username = 'SEC';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SEC LOCKED
(2)輸入10次錯誤密碼后被動鎖定LOCKED(TIMED)狀態(tài)演示
嘗試輸入10次錯誤密碼后再次查詢用戶狀態(tài)。
sys@ora10g> select username, account_status from dba_users where username = 'SEC';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SEC LOCKED(TIMED)
3)用戶密碼過期狀態(tài),EXPIRED和EXPIRED(GRACE)兩種狀態(tài)都屬于密碼過期狀態(tài)
密碼是否過期是通過修改PROFILE中的PASSWORD_LIFE_TIME實現(xiàn)的,密碼過期后還可以使用的天數(shù)是通過PROFILE中的PASSWORD_GRACE_TIME控制的。有關(guān)PROFILE的描述請參考文章《【PROFILE】使用Oracle的PROFILE對用戶資源限制和密碼限制的研究與探索》(http://space.itpub.net/519536/viewspace-616287)。
關(guān)于密碼過期我們也可以使用SQL顯式的去完成,簡單演示一下。
sys@ora10g> alter user sec password expire;
User altered.
sys@ora10g> select username, account_status from dba_users where username = 'SEC';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SEC EXPIRED
sys@ora10g> conn sec/sec
ERROR:
ORA-28001: the password has expired
Changing password for sec
New password:
Retype new password:
Password changed
Connected.
sec@ora10g>
sec@ora10g> select username, account_status from dba_users where username = 'SEC';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SEC OPEN
4.關(guān)于四種組合狀態(tài)的解釋
因為鎖定的兩種狀態(tài)(LOCKED和LOCKED(TIMED))和密碼過期的兩種狀態(tài)(EXPIRED和EXPIRED(GRACE))之間沒有關(guān)系。因此他們之間可以任意組合,2×2=4,因此有四種組合狀態(tài):
5 EXPIRED & LOCKED(TIMED)
6 EXPIRED(GRACE) & LOCKED(TIMED)
9 EXPIRED & LOCKED
10 EXPIRED(GRACE) & LOCKED
分別解釋這四種組合狀態(tài)
1)EXPIRED & LOCKED(TIMED)狀態(tài)表示用戶過期后,錯誤密碼嘗試次數(shù)超過PROFILE中的FAILED_LOGIN_ATTEMPTS的限制;
2)EXPIRED(GRACE) & LOCKED(TIMED)狀態(tài)表示用戶在密碼過期后的有效期內(nèi),不成功登錄次數(shù)超過PROFILE中的FAILED_LOGIN_ATTEMPTS的限制;
3)EXPIRED & LOCKED狀態(tài)表示用戶過期的同時處于鎖定狀態(tài),做一個實驗。
sec@ora10g> alter user sec account lock password expire;
User altered.
sec@ora10g> select username, account_status from dba_users where username = 'SEC';
USERNAME ACCOUNT_STATUS
------------------------------ --------------------------------
SEC EXPIRED & LOCKED
sec@ora10g> conn sec/sec
ERROR:
ORA-28000: the account is locked
Warning: You are no longer connected to ORACLE.
4)EXPIRED(GRACE) & LOCKED狀態(tài)表示用戶在密碼過期后的有效期內(nèi)被DBA手工鎖定。
5.小結(jié)
Oracle用戶雖然有九種之多的狀態(tài),貌似很復(fù)雜,但只要我們能夠?qū)ζ溥M(jìn)行清晰的劃分類別,理解起來便會很容易。
從正常、鎖定和密碼過期三個角度去理解用戶狀態(tài),一切都會水到渠成。
看完上述內(nèi)容是否對您有幫助呢?如果還想對相關(guān)知識有進(jìn)一步的了解或閱讀更多相關(guān)文章,請關(guān)注億速云行業(yè)資訊頻道,感謝您對億速云的支持。
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。