日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > php >内容正文

php

php oracle 锁表,ORACLE 用户锁定问题

發布時間:2023/12/4 php 45 豆豆
生活随笔 收集整理的這篇文章主要介紹了 php oracle 锁表,ORACLE 用户锁定问题 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

在開發環境下,由于直接修改了數據庫用戶的密碼,之后一直不能連接,及時執行alter user username account unlock 還是提示用戶鎖定。剛開始只是懷疑是數據庫的問題,就一直在數據庫上找問題,其實最終的問題是更改密碼后,應用程序的還在鏈接著數據庫,由于

在開發環境下,由于直接修改了數據庫用戶的密碼,之后一直不能連接,及時執行alter user username account unlock 還是提示用戶鎖定。剛開始只是懷疑是數據庫的問題,就一直在數據庫上找問題,其實最終的問題是更改密碼后,應用程序的還在鏈接著數據庫,由于數據庫默認設置登錄失敗10次用戶會被鎖定。停掉應用,重新執行alter user username account unlock,問題得到解決。

有關數據庫用戶狀態及如何查詢進行介紹:

oracle11g數據庫安全加固須謹慎

數據庫安全配置中,需要做相關的安全加固工作。以確認數據庫的安全,但是,有些時候,操作不當或者數據庫業務賬號修改密碼后,而程序的連接數據庫的配置封裝在jar里,如果jar內的連接數據庫的配置信息沒有做相應的修改的話。就會對數據庫的此業務賬號造成嚴重的后果。

因此,真正了解Oracle安全數據庫用戶的狀態,就顯得尤為重要了。下面我們就看一下oracle數據庫中的多種用戶狀態。

ORACLE數據庫用戶有多種狀態,可查看視圖USER_ASTATUS_MAP。

SQL> col status for a30

SQL> 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.

通過上面的查詢我們可以看到在Oracle中account總共有9種不同的狀態,對應dba_users視圖中的account_status字段。

下面我分別就每種狀態的含義和出現的情況做個簡單的說明,以便于今后的系統管理和維護。

分析上面的9種狀態不難看出,其實獨立的狀態只有OPEN、EXPIRED、LOCKED、EXPIRED(GRACE)、LOCKED(TIMED) 5種形式。其他4種不過是前面幾種形式的組合而已。

或者也可以這樣理解:

以上的9種狀態可以分為兩大類:

1、基本狀態(前五種為基本狀態:0 OPEN、1 EXPIRED、2 EXPIRED(GRACE)、4 LOCKED(TIMED)、8 LOCKED);

2、組合狀態(后四種為組合狀態:5 EXPIRED & LOCKED(TIMED)、6 EXPIRED(GRACE) & LOCKED(TIMED)、9 EXPIRED & LOCKED、10 EXPIRED(GRACE) & LOCKED);

后四種的組合狀態可通過狀態號STATUS#獲得其狀態的兩個組合。掌握前五種即可。

具體詳細解釋請參考如下:

OPEN: 這個是大家最常見的,就是表示這個是可用的,沒有任何限制的帳戶

LOCKED: 表示這個帳戶被DBA鎖定. 一般通過alter user username account lock(unlock);

EXPIRED: 表示該帳戶被設置為口令到期,要求用戶在下次logon的時候修改口令(系統會在該account被設置為expire后的第一次登陸是提示你修改密碼)

EXPIRED(GRACE): 當設置了grace以后(第一次成功登錄后到口令到期后有多少天時間可改變口令,在這段時間內,帳戶被提醒修改口令并可以正常登陸,

account_status顯示為EXPIRED(GRACE).

LOCKED(TIMED): 這種狀態表示失敗的login次數超過了FAILED_LOGIN_ATTEMPTS,被系統自動鎖定,需要注意的是,在Oracle 10g中,默認的DEFAULT值是10次.

EXPIRED & LOCKED: 表示此賬戶被設置為口令到期且被鎖定。

EXPIRED(GRACE) & LOCKED(TIMED): 當account_stutus為EXPIRED(GRACE)的時候,用戶又嘗試失敗的login次數超過了FAILED_LOGIN_ATTEMPTS,被系統自動鎖定

EXPIRED & LOCKED(TIMED): 當設置了account expire后,用戶又失敗的login次數超過了FAILED_LOGIN_ATTEMPTS,被系統自動鎖定

EXPIRED(GRACE) & LOCKED: 用戶account_status為EXPIRED(GRACE)后,又被DBA 手工鎖定帳戶后的狀態

下面通過實例操作來說明:

本人對oracle數據庫的profile文件進行如下安全設置:(其中的FAILED_LOGIN_ATTEMPTS 6是對用戶嘗試失敗的登錄最大次數的限制,這里只允許最多嘗試失敗6次)

SQL>ALTER PROFILE DEFAULT LIMIT

FAILED_LOGIN_ATTEMPTS 6

PASSWORD_LIFE_TIME 60

PASSWORD_REUSE_TIME 60

PASSWORD_REUSE_MAX 5

PASSWORD_VERIFY_FUNCTION verify_function_11g

PASSWORD_LOCK_TIME 1/24

PASSWORD_GRACE_TIME 90;

通過以下語句查詢當前用戶的狀態:

SQL> alter session set nls_date_format='yyyy-MM-dd hh24:mi:ss';

SQL> show linesize;

SQL> set linesize=1000;

SQL> select username,account_status from dba_users;

USERNAME ACCOUNT_STATUS

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

DBA_USER OPEN

DBSNMP OPEN

SYSMAN OPEN

SCOTT OPEN

FLOWS_FILES EXPIRED & LOCKED

MDSYS EXPIRED & LOCKED

WMSYS EXPIRED & LOCKED

ORDDATA EXPIRED & LOCKED

CTXSYS EXPIRED & LOCKED

ANONYMOUS EXPIRED & LOCKED

接下來使用賬號dba_user和scott,以錯誤的密碼嘗試連接數庫6次以上后,再查看數據庫用戶狀態:

SQL> select username,account_status from dba_users;

USERNAME ACCOUNT_STATUS

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

DBA_USER EXPIRED(GRACE) & LOCKED(TIMED)

DBSNMP OPEN

SYSMAN OPEN

SCOTT EXPIRED(GRACE) & LOCKED(TIMED)

FLOWS_FILES EXPIRED & LOCKED

MDSYS EXPIRED & LOCKED

WMSYS EXPIRED & LOCKED

ORDDATA EXPIRED & LOCKED

CTXSYS EXPIRED & LOCKED

ANONYMOUS EXPIRED & LOCKED

事實證明,當用戶DBA_USER和SCOTT為EXPIRED(GRACE)的時候,用戶又嘗試失敗的login次數超過了FAILED_LOGIN_ATTEMPTS,被系統自動鎖定.

如果這兩個用戶為生產現網的業務賬戶的話,管理員不能及時發現問題或報警的話,將會造成業務中斷等嚴重的后果。

本文原創發布php中文網,轉載請注明出處,感謝您的尊重!

總結

以上是生活随笔為你收集整理的php oracle 锁表,ORACLE 用户锁定问题的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。