【使用者概要檔案】建立使用者概要檔案

不一樣的天空w發表於2016-10-23

Oracle系統為了合理分配和使用系統的資源提出了概要檔案的概念。所謂概要檔案,就是一份描述如何使用系統的資源(主要是CPU資源)的配置檔案。將概要檔案賦予某個資料庫使用者,在使用者連線並訪問資料庫伺服器時,系統就按照概要檔案給他分配資源。在有的書中將其翻譯為配置檔案,其作用包括:
1、管理資料庫系統資源。
利用Profile來分配資源限額,必須把初始化引數resource_limit設定為true
ALTER SYSTEM SET resource_limit=TRUE SCOPE=BOTH;
2、管理資料庫口令及驗證方式。
預設給使用者分配的是DEFAULT概要檔案,將該檔案賦予了每個建立的使用者。但該檔案對資源沒有任何限制,因此管理員常常需要根據自己資料庫系統的環境自行建立概要檔案

 

透過資料字典檢視預設資源配置內容:
select * from dba_profiles order by profile;

DEFAULT PROFILE:
      1、所有的使用者建立時都會被指定這個PROFILE
       2、DEFAULT PROFILE的內容為空,無限制


PROFILE的管理(資原始檔)當需要設定資源限制時,必須設定資料庫系統啟動引數RESOURCE_LIMIT,此引數預設值為FALSE 
 
   可以使用如下命令來啟動當前資源限制:
      alter system set RESOURCE_LIMIT=true;
      當需要以後啟動時也啟動限制,必須在init.ora中設定
      RESOURCE_LIMIT=true


PROFILE的口令機制限制:限制生效的前提:         
        
  A、RESOURCE_LIMIT:=TRUE
           B、ORACLE\RDBMS\ADMIN\UTLPWDMG.SQL


任務1:建立profile

建立概要檔案my_profile

1)密碼複雜性要求:啟用;

2)密碼長度最小值:8位;

3)密碼錯誤輸入三次,鎖定賬戶,2分鐘後自動解鎖

 

任務2

1)修改siebel使用者的概要檔案my_profile

2)修改siebel密碼(自行設定)

 

--建立密碼複雜度校驗函式

SQL> @?/rdbms/admin/utlpwdmg.sql

 

Function created.

 

 

Grant succeeded.

 

 

Profile altered.

 

 

Function created.

 

 

Grant succeeded.

 

--建立概要檔案

SQL> create profile my_profile limit

  2  failed_login_attempts 3 password_lock_time 2/1440

  3  password_verify_function verify_function;

 

Profile created.

 

--修改siebel使用者使用my_profile概要檔案

SQL> alter user siebel profile my_profile;

 

User altered.

 

SQL> desc dba_users;

 Name                                      Null?    Type

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

 USERNAME                                  NOT NULL VARCHAR2(30)

 USER_ID                                   NOT NULL NUMBER

 PASSWORD                                           VARCHAR2(30)

 ACCOUNT_STATUS                            NOT NULL VARCHAR2(32)

 LOCK_DATE                                          DATE

 EXPIRY_DATE                                        DATE

 DEFAULT_TABLESPACE                        NOT NULL VARCHAR2(30)

 TEMPORARY_TABLESPACE                      NOT NULL VARCHAR2(30)

 CREATED                                   NOT NULL DATE

 PROFILE                                   NOT NULL VARCHAR2(30)

 INITIAL_RSRC_CONSUMER_GROUP                        VARCHAR2(30)

 EXTERNAL_NAME                                      VARCHAR2(4000)

 PASSWORD_VERSIONS                                  VARCHAR2(8)

 EDITIONS_ENABLED                                   VARCHAR2(1)

 AUTHENTICATION_TYPE                                VARCHAR2(8)

 

SQL> select username,default_tablespace,created,profile from dba_users;

 

USERNAME        DEFAULT_TABLESP CREATED   PROFILE

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

SYS             SYSTEM          24-AUG-13 DEFAULT

SYSTEM          SYSTEM          24-AUG-13 DEFAULT

OUTLN           SYSTEM          24-AUG-13 DEFAULT

MGMT_VIEW       SYSTEM          24-AUG-13 DEFAULT

APPQOSSYS       SYSAUX          24-AUG-13 DEFAULT

WMSYS           SYSAUX          24-AUG-13 DEFAULT

EXFSYS          SYSAUX          24-AUG-13 DEFAULT

CTXSYS          SYSAUX          24-AUG-13 DEFAULT

XDB             SYSAUX          24-AUG-13 DEFAULT

ANONYMOUS       SYSAUX          24-AUG-13 DEFAULT

ORDSYS          SYSAUX          24-AUG-13 DEFAULT

 

USERNAME        DEFAULT_TABLESP CREATED   PROFILE

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

ORDDATA         SYSAUX          24-AUG-13 DEFAULT

ORDPLUGINS      SYSAUX          24-AUG-13 DEFAULT

SI_INFORMTN_SCH SYSAUX          24-AUG-13 DEFAULT

EMA

 

MDSYS           SYSAUX          24-AUG-13 DEFAULT

OLAPSYS         SYSAUX          24-AUG-13 DEFAULT

SYSMAN          SYSAUX          24-AUG-13 DEFAULT

FLOWS_FILES     SYSAUX          24-AUG-13 DEFAULT

APEX_030200     SYSAUX          24-AUG-13 DEFAULT

OWBSYS          SYSAUX          24-AUG-13 DEFAULT

 

USERNAME        DEFAULT_TABLESP CREATED   PROFILE

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

OWBSYS_AUDIT    SYSAUX          24-AUG-13 DEFAULT

DIP             USERS           24-AUG-13 DEFAULT

ORACLE_OCM      USERS           24-AUG-13 DEFAULT

XS$NULL         USERS           24-AUG-13 DEFAULT

MDDATA          USERS           24-AUG-13 DEFAULT

SPATIAL_WFS_ADM USERS           24-AUG-13 DEFAULT

IN_USR

 

SPATIAL_CSW_ADM USERS           24-AUG-13 DEFAULT

IN_USR

 

 

USERNAME        DEFAULT_TABLESP CREATED   PROFILE

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

APEX_PUBLIC_USE USERS           24-AUG-13 DEFAULT

R

 

SCOTT           USERS           24-AUG-13 DEFAULT

HR              USERS           30-AUG-16 DEFAULT

OE              USERS           30-AUG-16 DEFAULT

IX              USERS           30-AUG-16 DEFAULT

SH              USERS           30-AUG-16 DEFAULT

PM              USERS           30-AUG-16 DEFAULT

BI              USERS           30-AUG-16 DEFAULT

DBSNMP          SYSAUX          24-AUG-13 MONITORING_PROF

 

USERNAME        DEFAULT_TABLESP CREATED   PROFILE

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

                                          ILE

 

SIEBEL          TS_USERS        20-SEP-16 MY_PROFILE

 

37 rows selected.

檢視已將使用者SIEBEL的概要檔案改為MY_ROFILE.

 

——修改SIEBEL使用者密碼:

SYS >alter user siebel identified by q1w2E#R$;

 

User altered.

============補充概要檔案===============================
一.概要檔案作用

  概要檔案是口令限制和資源限制的命名集合。具有以下作用

a.      限制使用者執行消耗資源過度的sql操作。
b.      自動斷開空閒回話。
c.      在資料庫系統中合理分配資源。
d.      控制使用者口令的使用。

在建立資料庫時,Oracle會自動建立default的概要檔案,在口令與資源的限制均為unlimited,即未進行口令與資源的限制。
二.概要檔案內容
1.口令策略引數
  可以實現賬戶鎖定,口令的過期,口令的複雜度等。有以下幾個

a.      failed_login_attempts:指定允許輸入錯誤口令的次數,超過該次數賬戶將被鎖定。
b.      password_lock_time:指定賬戶被鎖定的天數。(單位:天)
c.      password_life_time:指定口令的有效期(單位:天)。如果達到有效期前使用者還沒有更換口令,口令將失效。必須由DBA重新設定新的口令。
d.      password_grace_time:指定口令的寬限期(單位:天)。
e.      password_reuse_time:指定能夠重複使用一個口令前必須經過的時間(單位:天)。
f.       password_reuse_max:指定在重複使用口令前必須對口令進行修改的次數。Password_reuse_time和password_reuse_max只能 設定一個,另一個必須為unlimited
g.      password_verify_function:指定驗證口令複雜度的函式。oracle提供了一個預設的口領校驗函式,可以執行指令碼$ORACLE_HOME/rdbms/admin/utlpwdmg.sql建立。

2.資源限制引數
  利用概要檔案,可以對以下系統資源進行限制

cpu時間,邏輯讀,使用者的併發會話數,空閒時間,連線時間,私有SGA區

a.      cpu_per_session:限制每個引數所能使用的cpu時間。引數值為整數,單位百分之一秒。
b.      session_per_user:限制每個使用者所能使建立的最大併發會話數。
c.      connect_time:限制每個會話所能連線到資料庫的最大時間,超過這個時間,會話將自動斷開,引數值為整數,單位為分鐘。
d.      idle_time:限制每個使用者所允許的最長連續空閒時間,超過這個時間會話將自動斷開,引數值整數,單位為分鐘。
e.      Logical_reads_per_session:限制每個會話所能讀取的資料塊數目。
f.      Private_sga:每個會話分配的私有SGA區大小(以位元組為單位),只對共享伺服器模式有效。
g.      Cpu_per_call:用於指定每條sql可佔用的最大cpu時間,單位百分之一秒。

三.使用概要檔案管理口令

概要檔案管理口令由鎖定賬戶、終止口令、口令歷史以及口令校驗等四種安全保護方式。概要檔案中包含7個口令管理選項,如果僅指定某個或某幾個選項,那麼其他選項將自動使用default概要檔案的相應選項值。

使用概要檔案管理口令的步驟是:建立概要檔案(create profile)--->設定相關口令引數(limit)--->把概要檔案分配給使用者。一般建立概要檔案由DBA來完成,如果以其他使用者身份建立,需要具有create profile許可權。
 
  case1(鎖定賬戶):限制使用者登入失敗次數為3

     create profile devp_lock limit  
     failed_login_attempts 3;  
     Profile created.  
      
    sys@ORCL> alter user scott profile devp_lock;  
      
    User altered.
 

連續三次登入失敗後使用正確的密碼登入:

    sys@ORCL> conn scott/oracle;  
    ERROR:  
    ORA-28000: the account is locked

  case2(終止口令):使使用者口令具有生存期,口令在生存期之後會失效。

    create profile devp_time limit  
    password_life_time 3;  
    Profile created.  
      
    sys@ORCL> alter user scott profile devp_time;  
    User altered.

  case3(口令歷史):透過核對新口令確保在指定時間或口令更改次數內不重複使用:

        create profile devp_his limit  
        password_life_time 10  
        password_grace_time 2  
        password_reuse_time 10  
        password_reuse_max unlimited;  
      
    Profile created.

注意:password_reuse_time和password_reuse_max兩個引數只能設定一個,另一個必須為unlimited.

概要檔案分配給使用者後,如果前11天沒有修改使用者口令,在第12天登入時,oracle會強制終止口令,並要求使用者改變口令。但如果仍然使用過去的口令修改不能成功
 
  case4(口令校驗):使用口令校驗函式來強制使用者使用複雜的口令。

函式規範:

function_name(
userid_parameter IN VARCHAR2(30),
password_parameter IN VARCHAR2(30),
old_password_parameter IN VARCHAR2(30))
RETURNBOOLEA

userid_patameter對應於使用者名稱,password_parameter對應於新口令,old_password_parameter對應於就口令。

可以透過執行$ORACLE_HOME/rdbms/admin/utlpwdmg.sql來建立預設的口令校驗函式。

    @utlpwdmg.sql   
      
    Function created.  
      
    Profile altered.  
      
    Function created.


    create profile devp_verify limit  
    password_life_time 10  
    password_grace_time 2  
    password_verify_function verify_function;  
         
    Profile created.  
   
四.使用概要檔案管理資源
概要檔案既可以限制整個會話的資源佔用,也可以限制呼叫級(sql語句)的資源佔用,要使用概要檔案管理資源,必須要啟用資源限制功能,透過設定初始化引數
RESOURCE_LIMIT為true實現:

  alter system set resource_limit=true;  
      
  System altered.

使用概要檔案管理資源與管理口令的步驟一樣,都是先建立概要檔案,設定相關的資源引數,再分配給使用者。

 1.限制會話資源:如果使用者超過某一會話級資源限制,oracle將終止(回滾)當前執行的語句,並通知使用者此會話超出資源限制。
此時,當前會話內已執行的語句不受資源限制的影響,使用者中基恩能夠執行commit,rollback,或斷開連線,使用者的其他所有操作
都將報錯。當事務被提交或回滾後,使用者在當前會話內也不能執行其他操作。

  case1:資料庫最多允許兩個開發人員以scott使用者登入進行操作,每個會話連線時間不能超過30Min,會話空閒時間不能超過10min.

[sql] view plain copy
在CODE上檢視程式碼片派生到我的程式碼片

       create profile devp_session limit  
       sessions_per_user 2  
       connect_time 30  
       idle_time 10;  
      
    Profile created.

管理員可以限制一個會話的空閒時間(idle time),如果會話內兩次oracle呼叫的時間間隔達到限制值,當前事務將被回滾,會話被終止,所佔用的資源也將被回收。此時是由pmon(程式監視器)對被終止的會話進行清理。同時,oracle不會不斷的監控會話的空閒及連線時間,而是每隔數分鐘檢查一次,所以有可能在終止會話前,已經略微超出了限制時間。

  2.限制呼叫資源
為了防止某個呼叫過度地使用系統資源,oracle允許管理員在呼叫級設定多種資源限制。如果使用者超過了呼叫級資源限制,oracle將停止執行語句,並進行回滾,之後向使用者報錯,但會話內已執行的語句不受資源限制的影響,使用者會話也將保持連線狀態。

  case1:

[sql] view plain copy
在CODE上檢視程式碼片派生到我的程式碼片

    create profile devp_call limit   
    cpu_per_call 200  
    logical_reads_per_call 3;  
      
    Profile created.

五.修改概要檔案

1.修改

      alter profile devp_call limit  
      sessions_per_user 2  
      failed_login_attempts 2  
      cpu_per_call 200;  
      
    Profile altered.

2.刪除(如果概要檔案已經分配給樂某個使用者,必須使用cascade選項,使用者也將恢復使用預設的default概要檔案)

    drop profile devp_call cascade;  
      
    Profile dropped.

六.檢視概要檔案資訊

1.查詢使用者的概要檔案

    select profile from dba_users where username='SCOTT';  
      
    PROFILE  
    ------------------------------  
    DEVP_SESSION

2.檢視概要檔案的內容

select * from dba_profiles where profile='DEVP_SESSION';



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

相關文章