Oracle的Profile文件

来源:互联网 发布:天天软件工作室 编辑:程序博客网 时间:2024/05/01 04:25
一:概述
       Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用CreateProfile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。
注意事项:
  1:建立PROFILE时,如果只设置了部分口令或资源限制选项,其他选项会自动使用默认值(DEFAULT的相应选项)
  2:建立用户时,如果不指定PROFILE选项,oracle会自动将DEFAULT分配给相应的数据库用户
  3:每个用户只能分配一个PROFILE.如果要同时管理用户的口令和资源,那么在建立PROFILE时应该同时指定口令和资源选项.
  4:使用PROFILE管理口令时,口令管理选项总是处于被激活状态,但如果使用PROFILE管理资源,必须要激活资源限制.
二:相关操作
       1:创建profile文件
     createprofile 文件名
   limit
     [限制条件…]
    例如:
            createprofilemyProfile                       --创建一个名为myProfile的profile文件
           limit
            password_reuse_time=30,           --限制密码使用的时间为30天
       password_reuse_max=10,          --限制修改密码宽限的时间为10天
       failed_login_attempts5,                --限制错误登陆次数为5次
       password_lock_time=3;               --限制锁定时间为3天
    注意事项:
      必须要有createprofile权限,才能创建profile。
    2:删除profile文件
      dropprofile文件名[cascade];
      例如:
             dropprofilemyProfilecascade;        --删除名为myProfil的profile文件
    注意事项:
      1> 已分配的profile,删除时必须加cascade选项。
      2> 必须要有createprofile权限,才能创建profile。
      3> DEFAULT为默认profile,不能删除
    3:修改profile文件
                alterprofile文件名
        limit
          [限制条件…];
    例如:
         alterprofilemyProfile                          --修改名为myProfile的profile文件
         limit
         password_reuse_time=60,              --修改限制密码使用的时间为60天
     password_reuse_max=5,                  --修改限制修改密码宽限的时间为5天
     failed_login_attempts3,                     --修改限制错误登陆次数为3次
     password_lock_time=5;                    --修改限制锁定时间为5天
       4:给制定用户分配profile文件
              alteruser用户名profile文件名;
              例如
                     alteruseruser1profilemyProfile;           --为名为user1的用户分配名为myProfile的profile文件
       5:查看指定的profile文件内容
              select[限定条件…]|*fromdba_profileswhereprofile=文件名;
              例如:
      select
      password_lock_time
      fromdba_profile
      whereprofile=’myProfile’
三:profile文件参数详解
  ● FAILED_LOGIN_ATTEMPT:设定登录到ORACLE数据库时可以失败的次数。一旦某用户尝试登录数据库的达到该值时,该用户的帐户就被锁定,只能由DBA能解锁。
  ● PASSWORD_LIFE_TIME:设定口令的有效时间(天数),一旦超过这一时间,必须重新设口令。缺省为UNLIMITED.
  ● PASSWORD_REUSE_TIME:许多系统不许用户重新启用过去用过的口令。该资源项设定了一个失效口令要经过多少天,用户才可以重新使用该口令。缺省为UNLIMITED.
  ● PASSWORD_REUSE_MAX:重新启用一个先前用过的口令前必须对该口令进行重新设置的次数(重复用的次数)。
  ● PASSWORD_LOCK_TIME:设定帐户被锁定的天数(当登录失败达到FAILED_LOGIN_ATTEMPTS时)。
  ● PASSWORD_GRACE_TIME:设定在口令失效前,给予的重新设该口令的宽限天。当口令失效之后回,在登录时会出现警告信息显示该天数。如果没有在宽限天内修改口令,口令将失效。
  ● PASSWORD_VERITY_FUNCTION:该资源项允许调用一个PL/SQL来验证口令。ORACLE公司已提供该应用的脚本,但是只要愿意的话,用户可以制定自己的验证脚本。该参数的设定就是PL/SQL函数的名称。缺省为NULL.
  ● SESSION_PER_USER:用户可以同时进行的会话(连接到Oracle)的最大数目。如果用户达到该限制,则在下一次登录时产生一条错误信息。
  ● CPU_PER_SESSION:用户在一次数据库会话期间可以占用的CPU时间总量(单位为:1%秒)。当达到该时间限制之后,用户就不能在会话中执行任何操作了。用户必须断开与Oracle的连接再重新建立连接以使该CPU累计器复位。
  ● CPU_PER_CALL:该资源表示用户可用的CPU时间总量(单位为:1%秒),与CPU_PER_SESSION不同,该资源是以每次调用(SQL语句)为基准来限制的,而不是以每次会话为基准的。无论何时,只要一个SQL语句达到该限制,该语句就以错误信息结束。不像CPU_PER_SESSION那样,用户不需断开与ORACLE的连接。当使用CPU_PER_CALL时,只要没有超出参数限定的时间用户就可以做新的查询。
  ● LOGICAL_READS_PER_SESSION:在一次给定的数据库会话期间能够进行的逻辑读(以数据库块为单位)的次数。如果超出该参数的限定。用户仍然可以工作,但只要他不进行读就可以。要想复位,用户必须断开数据库连接再重新连接才行。
  ● LOGICAL_READS_PER_CALL:在一次CPU调用(SQL语句)期间,可以读取的数据库块数,如果数据库的逻辑读超过了该设定值,则操作就被拒绝。
  ● IDLE_TIME:可以指定用户在数据库被终止之前,可以让连接处于多长的空闲状态(以分钟为单位)一个被终止的数据库连接可能不易被用户察觉,因为该资源并不终止任何应用程序。只有到用户试图下次执行某个操作时(如查询),他才会认识到该连接已被终止了。假设一用户已登到sqlplus并空闲了2小时,由于IDLE_TIME设为60(=1小时),则该用户的连接在第一小时之后就被终止了,但该用户仍可看到sqlplus,只是不能工作罢了。
  ● CONNECT_TIME:该资源用于限定用户可以和数据库连接的时间总量。和IDLE_TIME,该资源也是以分钟为单位,当连接时间超出该设置时,该连接就被终止。
  ● PRIVATE_SGA:表示用户私有的SQL区的大小(以块为单位)。确省为UNLIMITED.
  ● COMPOSITE_LIMIT:是一项复杂的资源项。利用该项可以对所有混合资源限定作出设定。可把它看成资源成本值。该成本值让用户能够确定在设置资源限制时哪些资源项比较重要。
  注意事项:(关于COMPOSITE_LIMIT的说明)
  在确定资源成本时,只有一下资源项有用:
  .CPU_PER_SESSION
  .LOGICAL-READS_PER_SESSION
  .CONNECT_TIME
  .PRIVATE_SGA
  如果某一资源项的资源成本为0,则该资源就没有成本。但是除0以外,都可用Alterresourcecost命令把值赋给资源项。
  如:alterresourcecostconnect_time10;
  在本例中,每连接1分钟的成本是10个混合资源限制点,当混合资源限制点数据超过该参数的设定时,数据库连接即被终止。
  假设用户具有以下资源成本:
  CPU_PER_SESSION1
  CONNECT_TIME50
  LOGICAL_READS_PER_SESSION0
  PRIVATE_SGA10
  并且当前的混合资源限制如下:
  COMPOSITE_LIMIT 15000
  则该用户可以用的资源加在一起不得超过由数据库管理员设定的COMPOSITE_LIMIT值15000。在这种情况下,用户在其私有的SQL区(PRIVATE_SGA_PER_SESSION)中能够占用的CPU时间为15000(150秒)(CPU_PER_SESSION)或者1500块(1500*10=15000)。当任何资源合成达到该限定值时,会话即被终止。这里CONNECT_TIME的值被设置为0,它并不占用总的COMPOSITE_LIMIT。
  可以同时采用混合限制和明确的限制,如:
  IDLE_TIME180
  CONNECT_TIME600
  CPU_PER_CALL750
  COMPOSITE_LIMIT10000
  在本例中,如果空闲超过180分钟,或者一次会话的总连接时间超过600分钟,或者执行一个SQL语句所耗的CPU时间超过750(7.5秒),或者混合资源限制超过10000,则配置文件就终止会话。在ORACLE中,只要IDLE_TIME,CONNECT_TIME,或CPU_PER_CALL的值没有超过限定值,则把COMPOSITE_LIMIT的值用做终止标志。如果这些值超出限定值,不管COMPOSITE_LIMIT的值多大,会话都会中断连接。

原创粉丝点击