国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數據庫 > Oracle > 正文

Oracle的口令管理

2024-08-29 13:37:54
字體:
來源:轉載
供稿:網友

  編者按: 驗證口令,獲得訪問授權,這是目前最常用的訪問控制手段,Oracle數據庫也采用這樣的安全策略。在這一策略中,口令的治理是要害,然而要做好這項工作,既保證數據的安全也保證用戶使用方便卻并非易事。
  
  在Oracle數據庫中,若要訪問數據,必須先具有該數據庫的一個賬戶。這個訪問可以是直接訪問(通過一個數據庫的用戶連接)或間接訪問(通過在數據庫鏈接中預設權限的訪問)。每個賬戶必須有一個與其相關的口令,一個數據庫賬戶可以連接到一個操作系統賬戶上。
  
  口令是在創建用戶賬戶時為每一用戶設置的,并可在該賬戶創建后對它們進行變更。用戶變更賬戶口令的能力受他訪問工具權限的限制。數據庫以加密的形式將口令存儲在一個數據字典表中。假如賬戶直接與操作系統賬戶相關,就可以旁路口令檢查。在Oracle 8i中,口令可以無效。數據庫治理員可以建立能重復使用口令的條件(通過一個數據庫口令歷史設置值),也可以使用環境文件為口令制定標準,如最小長度,或假如連續多次與賬戶連接不成功,就可以自動鎖定賬戶。
  
  環境文件
  可以使用環境文件來限制用戶能使用的系統和數據庫資源,并治理口令限制。假如數據庫中沒有創建環境文件,將使用缺省環境文件(Default)。缺省環境文件對于所有用戶資源沒有限制,表1列出了可以通過環境文件限制的資源。
  
  
  Oracle的口令治理
  
  (注: PASSWord_REUSE_MAX和PASSWORD_REUSE_TIME互不相容,假如其中一個資源設置成一個值,另一個必須設置成Unlimited。)
  
  如表1所示,許多資源都可以被限制,在用戶超過資源限制前不會發生任何動作,一旦到達限值, SQL語句就被停止。
  
  環境文件是通過“create PRofile”命令創建的,可以用“alter profile”命令修改。下例所示的“alter profile”命令用于修改現有的環境文件。在這個例子中,數據庫的缺省環境文件被修改成答應最大空閑時間為1小時:
  
  alter profile DEFAULT limit idle_time 60;
  
  在Oracle 8i中,可以使用環境文件來治理口令的終止、重新使用和復雜性。例如,可以限制一個口令的壽命、鎖定口令過舊的賬戶,也可以強制一個口令至少有一定程度的復雜性,并鎖定一個多次注冊失敗的賬戶。
  
  口令的鎖定與過期
  FAILED_LOGIN_ATTEMPTS用于設定賬戶答應的嘗試次數,可以防止惡意人員無限制地嘗試賬戶口令來破解口令。例如,假如設置用戶環境文件的FAILED_LOGIN_ATTEMPTS資源為3,該賬戶答應連續注冊失敗3次,第4次失敗就會引起賬戶被鎖定。
  
  在下面的例子中,創建一個供用戶TestUser使用的TEST_PROFILE環境文件:
  
  create profile TEST_PROFILE limit
  
  FAILED_LOGIN_ATTEMPTS 3;
  
  create user TESTUSER identified by abcd1234
  
  profile TEST_PROFILE;
  
  grant CREATE session to TESTUSER;
  
  假如連續3次與TestUser賬戶的連接失敗,該賬戶將自動被Oracle鎖定。此后當輸入TestUser賬戶的正確口令時,會收到一條錯誤信息:
  
  ERROR:ORA-28000: the account is locked
  
  要對賬戶解鎖,可在數據庫治理員賬戶中使用“alter user”命令的account unlock子句,如下所示:
  
  alter user TESTUSER account unlock;
  
  賬戶解鎖后,TestUser賬戶再一次被答應連接。可以通過“alter user”命令的account lock子句來手動鎖定一個賬戶。
  
  alter user TESTUSER account lock;
  
  若一個賬戶由于多次連接失敗而被鎖定,當超過其環境文件的PASSWORD_LOCK_TIME值時將自動解鎖。
例如,假如PASSWORD_LOCK_TIME設為1,前面例子中的TestUser賬戶就被鎖定1天,過后賬戶即被自動解鎖。
  
  可以通過環境文件中的PASSWORD_LIFE_TIME資源建立一個口令的最大期限。例如,可以強制TEST_PROFILE環境文件的用戶每30天改變一次口令。
  
  alter profile TEST_PROFILE limit
  
  PASSWORD_LIFE_TIME 30;
  
  在這個例子中,“alter profile”命令用于修改TEST_PROFILE環境文件。PASSWORD_LIFE_TIME值設為30,因此使用這個環境文件的每個賬戶在30天后口令就會過期。假如口令過期,就必須在下次注冊時修改它,除非環境文件對過期的口令有一特定的寬限期。寬限期參數叫做PASSWORD_GRACE_TIME,假如在寬限期內沒有修改口令,賬戶就會過期。
  
  (注: 假如使用PASSWORD_LIFE_TIME參數,就必須為用戶提供一種便于其改變口令的方法。)
  
  “過期”賬戶與“鎖定”賬戶不同。鎖定賬戶會隨著時間的推移自動解鎖,而過期賬戶需要通過數據庫治理員人工干預才能重新激活。
  
  (注:假如使用口令過期特性,就要確保擁有應用程序的賬戶具有不同的環境文件設置值,否則它們會被鎖定,使得應用程序不能使用。)
  
  如前面例子所述,若要重新恢復一個過期賬戶,需使用“alter user”命令。在這個例子中,用戶TestUser首先由數據庫治理員手工使其口令過期。
  
  alter user TESTUSER password eXPire;
  
  接著,TestUser試圖連接其賬戶。當他輸入口令時,立即被提示輸入賬戶的新口令。
  
  也可以使用“create user”命令的“password expire”子句,強制用戶在第一次訪問時修改口令。不過“create user”命令不答應對用戶設置的新口令設置限期日期。要設置的話,必須使用前面例子中的PASSW??????餀???? ??ORD_LIFE_TIME環境文件參數。
  
  若要查看任一賬戶的口令限期,可查詢DBA_USERS數據字典視圖的Expire_Date列。若用戶自己想查看,可查詢USER_USERS數據字典視圖的Expiry_Date列(通過SQL*Plus或一個基于客戶機的查詢工具)。
  
  防止口令重新使用
  若要防止一個口令被重新使用,可以使用兩個環境文件參數的其中一個: PASSWORD_REUSE_MAX或PASSWORD_REUSE_TIME。這兩個參數互不相容,假如給其中的一個設置了值,另一個就必須設為Unlimited。
  
  PASSWORD_REUSE_TIME參數規定一個口令可以重新使用前必須經過的天數。例如,假如設置PASSWORD_REUSE_TIME為60天,則在60天內不能使用同一個口令。
  
  PASSWORD_REUSE_MAX參數指定一個口令可以重新使用前必須對其改變的次數。假如試圖在這個限制到達前重新使用該口令,Oracle會拒絕口令的修改。
  
  例如,可以為本章前面創建的TEST_PROFILE環境文件設置一個PASSWORD_REUSE_MAX參數。
  
  alter profile TEST_PROFILE limit
  
  PASSWORD_REUSE_MAX 3
  
  PASSWORD_REUSE_TIME UNLIMITED;
  
  假如用戶TestUser現在試圖重新使用一個最近的口令,修改口令就會失敗。例如,如下修改口令:
  
  alter user TESTUSER identified by eye123;
  
  然后再次改變它:
  
  alter user TESTUSER identified by eye456;
  
  在下次修改口令時,試圖重新使用最近的口令,就會失敗。他不能重新使用任何他最近用過口令,必須提供一個新口令。
  
  口令歷史被存儲在SYS模式下一個叫USER_HISTORY$的表中。在這個表中,Oracle存儲了用戶資源識別符、加密的口令值和創建該口令的日期/時間標記。當PASSWORD_REUSE_TIME值已過期或口令修改次數超過PASSWORD_REUSE_MAX值時,這個老的口令記錄就從SYS.USER_HISTORY$表中刪除。假如一個新的密碼與現有的密碼一樣,這個新口令就被拒絕。
  
  由于老口令存儲在SYS擁有的一個表中,所以數據存儲在System表空間中。因此,假如要為頻繁修改口令的大量用戶保留非常大的口令歷史,口令歷史表SYS.HISTORY$所需的空間就會影響System表空間的空間需求。
  
  設置口令復雜度
  可以強制用戶的口令符合復雜度標準。例如,可以要求口令的最小長度,限制不能是一些簡單的詞,至少包括一個數字或標點符號等。“create profile”和“alter profile”命令的PASSWORD_VERIFY_FUNCTION參數指定用于評估口令的函數名。假如用戶提出的口令不符合要求,就不會被接受。例如,可以拒絕“abcde”和“eye”作為口令,因為它們未包含任何數字值。為簡化實施口令復雜度的過程,Oracle提供了一個函數VERIFY_FUNCTION。在缺省情況下,不創建這個函數。只有在運行utlpwdmg.sql腳本文件(該文件位于Oracle軟件主目錄下的/rdbms/admin子目錄中)時才創建VERIFY_FUNCTION函數(注重這個函數應當在SYS模式下創建)。
  
  函數中的前三個條件子句檢查口令是否與用戶名相同,是否少于4個字符,是否是一組特定的詞之一。可以任意修改這些檢查或增加你的要求。
例如,安全原則可能要求口令最少有六個字符,運行前要簡單地更新部分utlpwdmg.sql文件。
  
  函數的下一個主要部分是對口令字符串內容的三段檢查。要通過這些檢查,口令中至少要包含一個字符、一個數字和一個標點符號。同前面的檢查一樣,它們是可以編輯的。例如,可以不要求用戶在其口令中使用標點符號,只要簡單地繞過那部分口令檢查就可以。
  
  函數的下一部分是將新口令與老口令逐字符進行比較。假如它們之間的不同之處少于三處,新口令將不予接受。
  
  這個腳本文件中最后一條命令不屬于該函數,它是一條改變缺省環境文件的“alter profile”命令。假如改變了缺省環境文件,那么數據庫中所有使用缺省環境文件的用戶都會受到影響。
  
  要注重

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 嘉善县| 璧山县| 大港区| 道孚县| 改则县| 浮梁县| 南雄市| 正蓝旗| 隆安县| 迁西县| 北宁市| 武宁县| 偏关县| 乌审旗| 顺义区| 砀山县| 垣曲县| 罗甸县| 本溪| 嫩江县| 侯马市| 乐昌市| 易门县| 荃湾区| 石门县| 怀柔区| 隆昌县| 武乡县| 龙门县| 新巴尔虎右旗| 游戏| 抚州市| 德惠市| 五峰| 卢湾区| 鹤庆县| 滦平县| 松江区| 通化市| 扎赉特旗| 贵阳市|