Oracle用户的Profile文件

一:概述

       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的值多大,会话都会中断连接。

posted @ 2012-10-24 19:11  Silently Silence  阅读(699)  评论(0)    收藏  举报