oracle中profile

Oracle中profile的作用?

悬赏分:20 - 解决时间:2008-6-18 10:16
profile的作用是什么?
如何使用profile控制用户的权限? 
问题补充:
请举例说明?
提问者: quziguang - 五级
最佳答案
create profile new_profile
              limit password_reuse_max 10
                     password_reuse_time 30;
 
       2.设置profile资源限制:
       create profile app_user limit
              sessions_per_user unlimited
              cpu_per_session unlimited
              cpu_per_call 3000
              connect_time 45
              logical_reads_per_session default 
              logical_reads_per_call 1000
              private_sga 15k
              composite_limit 5000000;
              总的resource cost不超过五百万service units。计算总的resource cost的公式由alter resource cost语句来指定。
       
       3.设置密码限制profile:
       create profile app_users2 limit
              failed_login_attempts 5
              password_life_time 60
              password_reuse_time 60
              password_reuse_max 5
              password_verify_function verify_function
              password_lock_time 1/24
              password_grace_time 10;
              
       4.将配置文件分配给用户:
              SQL> alter user dinya profile app_user;
用户已更改。
SQL>
              
              SQL> alter user dinya profile default;
用户已更改。
SQL> 

 

 

1、目的:

  Oracle系统中的profile可以用以对用户所能施用的数据库资源进展限制,运用Create Profile下令创办一个Profile,用它来兑现对数据库资源的限制运用,如果把该profile分配给用户,则该用户所能施用的数据库资源都在该 profile的限制以内。

  2、条件:

  创设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分配给用户。

  3、语法:

  CREATE PROFILE profile

  LIMIT { resource_parameters

  | password_parameters

  }

  [ resource_parameters

  | password_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 }

  }

  4、语法解释:

  profile:配置文件的姓名。Oracle数据库以以次形式强逼资源限制:

  一.如其用户超过了connect_time或idle_time的对话资源限制,数据库就回滚现阶段事宜,并完事对话。用户再度执行命令,数据库则回来一个差错,

  二.如若用户意欲施行超过其余的对话资源限制的操作,数据库抛却操作,来滚目前事宜并立马回来错处。用户以后可以交付或回滚目前事宜,务必完事对话。

  揭示:可以将一条分为多个段,如一钟头(1/24天)来限制时间,可认为用户指定资源限制,但是数据库唯有在参数收效后才会实施限制。

  Unlimited:分配该profile的用户对资源施用无限制,应运用密码参数时,unlimited意味没对参数加限制。

  Default:指定为default象征忽略对profile中的一些资源限制,Default profile初步定义对资源不限制,可以经过alter profile下令来改变。

  Resource_parameter一部分

  Session_per_user:指定限制用户的并发对话的数额。

  Cpu_per_session:指定对话的CPU时间限制,组织为百分之1秒。

  Cpu_per_call:指定一次调用(解析、施行和提取)的CPU时间限制,机关为百分之1秒。

  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_session,connect_time,logical_reads_per_session和private-sga总的 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=30,password_reuse_max=十,用户可以在30天之后重用该密码,要求密码务必被改变超过10次。

  二.如若指定了内中的一个为整数,而另一个为unlimited,则用户永远不能重用一个密码。

  三.如其指定了此中的一个为default,Oracle数据库施用定义在profile中的默认值,默许情况下,全部的参数在profile中都被设立为unlimited,如其没改变profile默认值,数据库对该值老是默许为unlimited。

  四.如若两个参数都设立为unlimited,则数据库忽略他们。

  Password_lock_time:指定登陆尝试失败次数抵达后帐户的缩定时间,以天为机关。

  Password_grace_time:指定宽限天数,数据库下发警告到登陆失灵前的天数。如若数据库密码在这当中没被批改,则逾期会失灵。

  Password_verify_function:该字段容许将复杂的PL/SQL密码证验脚本做为参数传接到create profile话语。Oracle数据库提供了一个默许的脚本,但是自各儿可以创造自个儿的证验守则或应用第三方软件印证。对Function姓名,指定的是密码证验守则的姓名,指定为Null则寓意不施用密码应验效能。如若为密码参数指定表达式,则该表达式可以是随便格式,去除数据库标量子查询。

 

5、举例来说:

  一.创设一个profile:

  create profile new_profile

  limit password_reuse_max 十

  password_reuse_time 30;

  二.设立profile资源限制:

  create profile app_user limit

  sessions_per_user unlimited

  cpu_per_session unlimited

  cpu_per_call 3000

  connect_time 45

  logical_reads_per_session default

  logical_reads_per_call 1000

  private_sga 15k

  composite_limit 5000000;

  总的resource cost不超过五百万service units。计算总的resource cost的公式由alter resource cost话语来指定。

  三.设立密码限制profile:

  create profile app_users二 limit

  failed_login_attempts 五

  password_life_time 60

  password_reuse_time 60

  password_reuse_max 五

  password_verify_function verify_function

  password_lock_time 1/24

  password_grace_time 十;

  四.将配置文件分配给用户:

  SQL> alter user dinya profile app_user;

  用户已更动。

  SQL>

  SQL> alter user dinya profile default;

  用户已更动。

你可能感兴趣的:(oracle,数据库,session,function,user,Parameters)