基礎知識6——建立和管理配置檔案

與刃爭鋒發表於2014-01-08
建立和管理配置檔案
配置檔案雙重功能 :實施口令策略並限制會話可以佔用的資源. 始終要實施口令控制,而對於資源限制,則引數resource_limittrue時(預設false)才會實施.系統將自動使用配置檔案,但預設的配置檔案(預設應用所有使用者,包括SYS和SYSTEM)作用很小.

管理口令
可用於口令的限制如下:
failed_login_attempts   --指定在鎖定賬戶前,口令連續錯誤次數,如果及時更正,重置為0
password_lock_time  --在到達failed_login_attempts後,鎖定賬戶的天數
password_life_time  --口令過期前的天數,過期後仍可使用,取決於password_grace_time
password_grace_time --口令過期(有提示)後第一次成功登入後的天數,此期間舊口令可用
password_reuse_time --可以重新使用口令前的天數
password_reuse_max  --允許重新使用口令的次數
password_verify_function    --更改口令時執行的函式名




資源限制
可用於資源使用的限制(也叫核心限制)如下:
sessions_per_user   --同一賬號的併發登入數
cpu_per_session --強制終止會話前,允許會話伺服器程式使用的CPU時間(釐秒)
cpu_per_call    --強制終止某SQL語句,允許會話的伺服器程式用於執行此語句的CPU時間(釐秒)
logical_reads_per_session   --強制終止會話前,會話可讀取的次數
logical_reads_per_call  --強制終止單個語句前,此語句可讀取的塊數
private_sga --對於共享伺服器體系結構連線的會話,允許會話的資料在SGA佔用的位元組數(KB)
connect_time    --在強制終止會話前,繪畫的最長持續時間(分鐘)
idle_time   --強制終止會話前,允許會話處於閒置狀態的最長時間(分鐘)
composite_limit --cpu_per_session,connect_time,logical_reads_per_session和private_sga的加權和,高階功能


設定了例項引數,才會應用資源限制:

alter system set resource_limit=true;       --預設是false




配置檔案的建立和分配

select username,profile from dba_users;

預設方式下為所有使用者(除了DBSNMP和WKSYS)分配名為default的配置檔案,顯示配置檔案本身的檢視是dba_profiles:


select * from dba_profiles 
where profile='DEFAULT'


default配置檔案完全沒有資源限制,只有一些口令限制,如圖所示:


這些限制不嚴格:連續10次輸錯,賬戶鎖1天,口令在6個月後過期,有1個星期的更改口令的緩期

啟用更高階口令管理的最簡單方式是執行oracle提供的指令碼,unix/linux上:

$ORACLE_HOME/rebms/admin/utlpwdmg.sql

windows上:

%ORACLE_HOME%\redms\admin\utlpwdmg.sql

在任一平臺上,此指令碼將建立兩個名為verify_function和verify_function_11g函式,並執行:

alter profile default limit
password_life_time 180
password_grace_time 7
password_reuse_time unlimited
password_reuse_max unlimited
filed_login_attempts 10
password_lock_time 1
password_verify_function verify_function_11g

此命令將調整名為default的配置檔案,使用default配置檔案的所有使用者(預設所有)將立即使用新值.建立標準資料庫後,唯一的更改是password_verify_function的規範.名為verify_function_11g的函式執行一組簡單任務,如果不符合下任一條件,將放棄更改口令:

-新口令字元長度至少8位

-新口令不能是使用者名稱,不能是大小寫的資料庫名
-拒絕一些常用的簡單口令如oracle
-新口令至少有一個字元和數字
-新口令與舊口令至少必須有三個字元不同

應將此指令碼視為示例指令碼.

使用SQL*Plus建立配置檔案,使用create profile命令,根據需要設定任何限制,未指定的任何限制將從default配置檔案的當前版本中提取.


來個例子,規定管理員根據需要多次登入多個併發會話,並必須每週更改一次口令(緩期1天),而程式設計人員可以登入兩次會話,其它任何使用者都不能多次登入.
為此,首先調整default配置檔案:

alter profile default limit session_per_user 1;

為DBA新建配置檔案,並予以分配:

create profile dba_profile limit sessions_per_user unlimited
password_life_time 7 password_grace_time 1;
alter user system profile dba_profile;

為程式設計人員建立配置檔案,並予以分配:

create profile programmers_profile limit sessions_per_user 2;
alter user jon profile programmers_profile;
alter user sue profile programmers_profile;

要使資源限制生效,請調整例項引數:

alter system set resource_limit=true;


假設此例項使用spfile,此例項將傳送給引數檔案,並將永久儲存.
如果將配置檔案分配給使用者,就不能再刪除配置檔案,必須首先將它們更改為不同的配置檔案,此後用下面命令刪除:

drop profile profile_name;

或下面的命令:

drop profile profile_name cascade;







練習,建立分配和測試一個配置檔案,此檔案將實施一些口令控制


建立一個配置檔案,如果輸錯兩次密碼,就鎖定賬戶:

create profile two_wrong limit failed_login_attempts 2;

將新配置檔案分配給scott

alter user scott profile two_wrong;

連續輸入錯誤口令,出現ora-28000錯誤



管理員使用者解除scott鎖定

alter user scott account unlock;

確認scott可以連線

最後刪除配置檔案

drop profile two_wrong cascade


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/25025926/viewspace-1068189/,如需轉載,請註明出處,否則將追究法律責任。

相關文章