Oracle用戶ACCOUNT_STATUS的九種狀態

1.#查看密碼過期有效期

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

2.#查看口令失效用戶的profile文件

? SELECT * FROM dba_users;

3.DBA_USERS視圖中ACCOUNT_STATUS記錄的用戶的當前狀態,一般情況下在使用的正常用戶均處于OPEN狀態。

例如查看sec用戶的當前狀態,此時該用戶處于OPEN狀態,可以正常使用。

sys@ora10g> select username, account_statusfrom dba_users where username = 'SEC';

USERNAME? ? ? ? ? ? ? ? ? ? ? ACCOUNT_STATUS

--------------------------------------------------------------

SEC? ? ? ? ? ? ? ? ? ? ? ? ? OPEN

1.所有用戶狀態匯總

除了常用的OPEN狀態還有哪些用戶狀態?

這個信息可以通過USER_ASTATUS_MAP獲得。

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.

用戶狀態不會超出以上九種。

2.九種狀態的分類

以上九種可以分為兩大類:1.基本狀態;2.組合狀態。

前五種是基本狀態:

? ? ? ? 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

規律是這樣的:后四種的組合狀態可以通過狀態號STATUS#獲得它是哪兩種狀態的組合,例如10=2+8(10 EXPIRED(GRACE)

&LOCKED = 2 EXPIRED(GRACE) + 8 LOCKED)。因此只要了解基本狀態的含義其他便可無師自通。

3.五種基本狀態的詮釋

這五種基本狀態又可以分為三類:1.正常狀態;2.鎖定狀態;3.密碼過期狀態。

1)OPEN狀態不用多解釋,表示用戶處于正常狀態。

2)用戶被鎖定狀態,LOCKED和LOCKED(TIMED)兩種狀態都屬于鎖定狀態

用戶被鎖定一般分為兩種:一種是DBA顯式的通過SQL語句對用戶進行鎖定;另外一種是被動的鎖定,例如默認情況下如果密碼輸入錯誤超過10次(這個限制是由PROFILE中的FAILED_LOGIN_ATTEMPTS控制的,該信息可以通過DBA_PROFILES視圖查詢),用戶將被鎖定。

(1)顯式鎖定sec用戶LOCKED狀態演示

sys@ora10g> alter user sec account lock;

User altered.

sys@ora10g> select username, account_statusfrom dba_users where username = 'SEC';

USERNAME? ? ? ? ? ? ? ? ? ? ? ACCOUNT_STATUS

--------------------------------------------------------------

SEC? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?LOCKED

(2)輸入10次錯誤密碼后被動鎖定LOCKED(TIMED)狀態演示

嘗試輸入10次錯誤密碼后再次查詢用戶狀態。

sys@ora10g> select username, account_statusfrom dba_users where username = 'SEC';

USERNAME? ? ? ? ? ? ? ? ? ? ? ACCOUNT_STATUS

--------------------------------------------------------------

SEC? ? ? ? ? ? ? ? ? ? ? ? ? LOCKED(TIMED)

3)用戶密碼過期狀態,EXPIRED和EXPIRED(GRACE)兩種狀態都屬于密碼過期狀態

密碼是否過期是通過修改PROFILE中的PASSWORD_LIFE_TIME實現的,密碼過期后還可以使用的天數是通過PROFILE中的

PASSWORD_GRACE_TIME控制的。

有關PROFILE的描述請參考文章《【PROFILE】使用Oracle的PROFILE對用戶資源限制和密碼限制的研究與探索》

(http://space.itpub.net/519536/viewspace-616287)

關于密碼過期可以使用SQL顯式的去完成,簡單演示一下。

alter user sec password expire;

User altered.

sys@ora10g> select username, account_statusfrom 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_statusfrom dba_users where username = 'SEC';

USERNAME? ? ? ? ? ? ? ? ? ? ? ACCOUNT_STATUS

--------------------------------------------------------------

SEC? ? ? ? ? ? ? ? ? ? ? ? ? OPEN

4.關于四種組合狀態的解釋

因為鎖定的兩種狀態(LOCKED和LOCKED(TIMED))和密碼過期的兩種狀態(EXPIRED和EXPIRED(GRACE))之間沒有關系。因此他們

之間可以任意組合,2×2=4,因此有四種組合狀態:

? ? ? ? 5EXPIRED & LOCKED(TIMED)

? ? ? ? 6EXPIRED(GRACE) & LOCKED(TIMED)

? ? ? ? 9EXPIRED & LOCKED

? ? ? ? 10EXPIRED(GRACE) & LOCKED

分別解釋這四種組合狀態

1)EXPIRED& LOCKED(TIMED)狀態表示用戶過期后,錯誤密碼嘗試次數超過PROFILE中的FAILED_LOGIN_ATTEMPTS的限制;

2)EXPIRED(GRACE)& LOCKED(TIMED)狀態表示用戶在密碼過期后的有效期內,不成功登錄次數超過PROFILE中的

FAILED_LOGIN_ATTEMPTS的限制;

3)EXPIRED& LOCKED狀態表示用戶過期的同時處于鎖定狀態,做一個實驗。

sec@ora10g> alter user sec account lockpassword expire;

User altered.

sec@ora10g> select username, account_statusfrom 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狀態表示用戶在密碼過期后的有效期內被DBA手工鎖定。

5.小結

Oracle用戶雖然有九種之多的狀態,貌似很復雜,但只要我們能夠對其進行清晰的劃分類別,理解起來便會很容易。

從正常、鎖定和密碼過期三個角度去理解用戶狀態,一切都會水到渠成

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 229,698評論 6 539
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 99,202評論 3 426
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 177,742評論 0 382
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 63,580評論 1 316
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 72,297評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 55,688評論 1 327
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,693評論 3 444
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,875評論 0 289
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 49,438評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 41,183評論 3 356
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 43,384評論 1 372
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,931評論 5 363
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 44,612評論 3 348
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 35,022評論 0 28
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 36,297評論 1 292
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 52,093評論 3 397
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 48,330評論 2 377

推薦閱讀更多精彩內容