使用者管理和資料庫安全(二)

Nalternative發表於2011-05-12

--使用者概要檔案在控制個別使用者的資源使用方面很有效,但oracle寧願你將概要檔案主要用於密碼管理。oracle建議使用database resource manager來控制資源的使用。

--除了dba的其他使用者如果需要使用database resource manager需要賦許可權:
 
SQL> EXEC dbms_resource_manager_privs.grant_system_privilege(grantee_name => 'scott',privilege_name => 'ADMINISTER_RESOURCE_MANAGER',admin_option => true);
PL/SQL procedure successfully completed

--使用database resource manager步驟:
--1、建立未決區:
SQL> exec dbms_resource_manager.create_pending_area;
PL/SQL procedure successfully completed

--2、建立資源消費組
SQL> exec dbms_resource_manager.create_consumer_group(consumer_group => 'local',comment => 'local councils');
PL/SQL procedure successfully completed

SQL> exec dbms_resource_manager.create_consumer_group(consumer_group => 'regional',comment => 'regional councils');
PL/SQL procedure successfully completed

SQL> exec dbms_resource_manager.create_consumer_group(consumer_group => 'national',comment => 'national councils');
PL/SQL procedure successfully completed
--檢視資料庫中存在哪些資源消費組
select consumer_group,status
from dba_rsrc_consumer_groups;
--oracle為每個資料庫提供了3個預設的資源計劃,即系統計劃、內部計劃、內部停頓:(怎麼11g和10g看到的結果不一樣)
select plan,comments,status from dba_rsrc_plans;
/
--3、建立資源計劃
 
SQL> exec dbms_resource_manager.create_plan(plan => 'membership_plan',cpu_mth => 'RATIO',comment =>'New Membership Recruitment');
 
PL/SQL procedure successfully completed

--4、建立計劃指示

---exec dbms_resource_manager.create_plan_directive(plan => 'prod_plan',group_or_subplan => 'dss_group',comment => 'Limit idle time',max_idle_time => 900,max_idle_blocker_time => 300);
exec dbms_resource_manager.create_plan_directive(plan => 'membership_plan',group_or_subplan => 'local',comment => 'local group',cpu_p1 => 70);

SQL> exec dbms_resource_manager.create_plan_directive(plan => 'membership_plan',group_or_subplan => 'regional',comment => 'regional group',cpu_p1 => 30);
 
PL/SQL procedure successfully completed
SQL> exec dbms_resource_manager.create_plan_directive(plan => 'membership_plan',group_or_subplan => 'national',comment => 'national group',cpu_p1 =>100);
 
PL/SQL procedure successfully completed

--5、驗證未決區

SQL> exec dbms_resource_manager.validate_pending_area();
 
begin dbms_resource_manager.validate_pending_area(); end;
 
ORA-29382: 暫掛區驗證失敗
ORA-29377: 使用者組 OTHER_GROUPS 不是最高階計劃 MEMBERSHIP_PLAN 的組成部分
ORA-06512: 在 "SYS.DBMS_RMIN", line 437
ORA-06512: 在 "SYS.DBMS_RESOURCE_MANAGER", line 798
ORA-06512: 在 line 2


在驗證未決區這一步失敗了,資料比較少,未查出是什麼原因。
oracle管理藝術一書上:
如果不包含other_groups的資源指示,而且相應的計劃指示用於主要的或頂層的計劃,則oracle不允許將該指示用於other_groups中的其他組。

 
這一塊先到這。。。。。。。。。。。。。。。

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

相關文章