熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> Oracle >> 正文

Oracle系統中的profile

2022-06-13   來源: Oracle 

  一目的

  Oracle系統中的profile可以用來對用戶所能使用的數據庫資源進行限制使用Create Profile命令創建一個Profile用它來實現對數據庫資源的限制使用如果把該profile分配給用戶則該用戶所能使用的數據庫資源都在該profile的限制之內

  二條件

  創建profile必須要有CREATE PROFILE的系統權限

  為用戶指定資源限制必須

  .動態地使用alter system或使用初始化參數resource_limit使資源限制生效該改變對密碼資源無效密碼資源總是可用

  SQL> show parameter resource_limit

  NAME                                 TYPE        VALUE

  ———————————— ———– ——————————

  resource_limit                       boolean     FALSE

  SQL> alter system set resource_limit=true;

  系統已更改

  SQL> show parameter resource_limit;

  NAME                                 TYPE        VALUE

  ———————————— ———– ——————————

  resource_limit                      boolean     TRUE

  SQL>

  .使用create profile創建一個定義對數據庫資源進行限制的profile

  .使用create user 或alter user命令把profile分配給用戶

  三語法

  CREATE PROFILE profile

  LIMIT { resource_parameters

  | password_parameters

  }

  [ resource_parameters

  | password_parameters

  ] ;

  <resource_parameters>

  { { SESSIONS_PER_USER

  | CPU_PER_SESSION

  | CPU_PER_CALL

  | CONNECT_TIME

  | IDLE_TIME

  | LOGICAL_READS_PER_SESSION

  | LOGICAL_READS_PER_CALL

  | COMPOSITE_LIMIT

  }

  { integer | UNLIMITED | DEFAULT }

  | PRIVATE_SGA

  { integer [ K | M ] | UNLIMITED | DEFAULT }

  }

  < password_parameters >

  { { FAILED_LOGIN_ATTEMPTS

  | PASSWORD_LIFE_TIME

  | PASSWORD_REUSE_TIME

  | PASSWORD_REUSE_MAX

  | PASSWORD_LOCK_TIME

  | PASSWORD_GRACE_TIME

  }

  { expr | UNLIMITED | DEFAULT }

  | PASSWORD_VERIFY_FUNCTION

  { function | NULL | DEFAULT }

  }

  四語法解釋

  profile配置文件的名稱Oracle數據庫以以下方式強迫資源限制

  .如果用戶超過了connect_time或idle_time的會話資源限制數據庫就回滾當前事務並結束會話用戶再次執行命令數據庫則返回一個錯誤

  .如果用戶試圖執行超過其他的會話資源限制的操作數據庫放棄操作回滾當前事務並立即返回錯誤用戶之後可以提交或回滾當前事務必須結束會話

  提示可以將一條分成多個段小時(/天)來限制時間可以為用戶指定資源限制但是數據庫只有在參數生效後才會執行限制

  Unlimited分配該profile的用戶對資源使用無限制當使用密碼參數時unlimited意味著沒有對參數加限制

  Default指定為default意味著忽略對profile中的一些資源限制Default profile初始定義對資源不限制可以通過alter profile命令來改變

  Resource_parameter部分

  Session_per_user指定限制用戶的並發會話的數目

  Cpu_per_session指定會話的CPU時間限制單位為百分之一秒

  Cpu_per_call指定一次調用(解析執行和提取)的CPU時間限制單位為百分之一秒

  Connect_time指定會話的總的連接時間以分鐘為單位

  Idle_time指定會話允許連續不活動的總的時間以分鐘為單位超過該時間會話將斷開但是長時間運行查詢和其他操作的不受此限制

  Logical_reads_per_session指定一個會話允許讀的數據塊的數目包括從內存和磁盤讀的所有數據塊

  Logical_read_per_call指定一次執行SQL(解析執行和提取)調用所允許讀的數據塊的最大數目

  Private_sga指定一個會話可以在共享池(SGA)中所允許分配的最大空間以字節為單位(該限制只在使用共享服務器結構時才有效會話在SGA中的私有空間包括私有的SQL和PL/SQL但不包括共享的SQL和PL/SQL)

  Composite_limit指定一個會話的總的資源消耗以service units單位表示Oracle數據庫以有利的方式計算cpu_per_sessionconnect_timelogical_reads_per_session和privatesga總的service units

  Password_parameter部分

  Failed_login_attempts指定在帳戶被鎖定之前所允許嘗試登陸的的最大次數

  Password_life_time指定同一密碼所允許使用的天數如果同時指定了password_grace_time參數如果在grace period內沒有改變密碼則密碼會失效連接數據庫被拒絕如果沒有設置password_grace_time參數默認值unlimited將引發一個數據庫警告但是允許用戶繼續連接

  Password_reuse_time和password_reuse_max這兩個參數必須互相關聯設置password_reuse_time指定了密碼不能重用前的天數而password_reuse_max則指定了當前密碼被重用之前密碼改變的次數兩個參數都必須被設置為整數

  .如果為這兩個參數指定了整數則用戶不能重用密碼直到密碼被改變了password_reuse_max指定的次數以後在password_reuse_time指定的時間內

  如password_reuse_time=password_reuse_max=用戶可以在天以後重用該密碼要求密碼必須被改變超過

  .如果指定了其中的一個為整數而另一個為unlimited則用戶永遠不能重用一個密碼

  .如果指定了其中的一個為defaultOracle數據庫使用定義在profile中的默認值默認情況下所有的參數在profile中都被設置為unlimited如果沒有改變profile默認值數據庫對該值總是默認為unlimited

  .如果兩個參數都設置為unlimited則數據庫忽略他們

  Password_lock_time指定登陸嘗試失敗次數到達後帳戶的縮定時間以天為單位

  Password_grace_time指定寬限天數數據庫發出警告到登陸失效前的天數如果數據庫密碼在這中間沒有被修改則過期會失效

  Password_verify_function該字段允許將復雜的PL/SQL密碼驗證腳本做為參數傳遞到create profile語句Oracle數據庫提供了一個默認的腳本但是自己可以創建自己的驗證規則或使用第三方軟件驗證 對Function名稱指定的是密碼驗證規則的名稱指定為Null則意味著不使用密碼驗證功能如果為密碼參數指定表達式則該表達式可以是任意格式除了數據庫標量子查詢

  五舉例

  .創建一個profile

  create profile new_profile

  limit password_reuse_max

  password_reuse_time ;

  .設置profile資源限制

  create profile app_user limit

  sessions_per_user unlimited

  cpu_per_session unlimited

  cpu_per_call

  connect_time

  logical_reads_per_session default

  logical_reads_per_call

  private_sga k

  composite_limit ;

  總的resource cost不超過五百萬service units計算總的resource cost的公式由alter resource cost語句來指定

  .設置密碼限制profile

  create profile app_users limit

  failed_login_attempts

  password_life_time

  password_reuse_time

  password_reuse_max

  password_verify_function verify_function

  password_lock_time /

  password_grace_time ;

  .將配置文件分配給用戶

  SQL> alter user dinya profile app_user;

  用戶已更改

  SQL>

  SQL> alter user dinya profile default;

  用戶已更改


From:http://tw.wingwit.com/Article/program/Oracle/201311/16807.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2022 電腦知識網 Computer Knowledge   All rights reserved.