分类: Oracle
2012-11-05 20:37:01
Create Profile(创建配置文件)
目的使用CREATE PROFILE语句来创建一个配置文件,这是一组数据库资源的限制。如果您分配一个用户的配置文件,则该用户不能超过这些限制。
先决条件要创建一个配置文件,您必须具有CREATE PROFILE系统权限。
为用户指定资源限制时必须:
1. 启用动态资源限制与ALTER SYSTEM语句或初始化参数RESOURCE_LIMIT的中。此参数不适用于密码资源。密码资源总是启用的。
2. 创建一个配置文件,使用CREATE PROFILE声明的定义的限制
3. 配置文件分配给用户使用CREATE USER或ALTER USER语句
指定要创建的配置文件的名称。使用配置文件在用户一个呼叫或一个会话中限制数据库资源。
Oracle数据库实施资源限制在以下方面:
1. 如果用户超过CONNECT_TIME的或IDLE_TIME会话资源限制,那么数据库回滚当前事务,并结束会话。当用户进程发出呼叫,数据库会返回一个错误。
2. 如果用户试图执行一个操作,超过其他的会话资源的限制,那么数据库将中止操作,回滚当前的声明,并立即返回一个错误。然后,用户可以提交或回滚当前事务,或者结束会话。
3. 如果用户试图执行一个呼叫超过限制的操作,那么该数据库将中止操作,回滚当前语句,并返回一个错误。
创建配置文件示例 CREATE PROFILE new_profile LIMIT PASSWORD_REUSE_MAX 10 PASSWORD_REUSE_TIME 30;当UNLIMITED指定资源参数时,表示此资源的分配了此配置,用户可以使用无限量。
当指定了一个密码参数,UNLIMITED表示没有限制已设置的参数。
DEFAULT指定默认情况下,如果你想在此档案中省略此资源限制。分配了此配置的用户的默认配置文件中指定的资源的限制。最初的默认配置文件定义了无限的资源。可以在ALTERPROFILE中更改这些限制。
任何没有被明确指定的配置文件,是用户的默认配置文件中定义的限制。另外,如果被明确分配给用户的个人资料,省略了一些资源的限制,或指定默认情况下为一些限制,那么用户的默认配置文件中定义这些资源的限制。
resource_parameters 资源参数SESSIONS_PER_USER
指定限制用户的并发会话数。
CPU_PER_SESSION
指定的会话,表示在百分之秒的CPU时间限制。
CPU_PER_CALL
指定的调用(解析,执行或读取),以百分之一秒的CPU时间限制。
CONNECT_TIME
指定会话的总运行时间的限制,以分钟为单位表示。
IDLE_TIME
指定允许的期间,在会话过程中几分钟内连续处于非激活状态的时间。
长时间运行的查询和其它操作不受此限制。
LOGICAL_READS_PER_SESSION
指定在一个会话中读取的数据块所允许的数量,包括从内存和磁盘读取的块。
LOGICAL_READS_PER_CALL
指定允许的呼叫处理一个SQL语句(解析,执行或读取)读取的数据块数量。
PRIVATE_SGA
指定一个会话在系统全局区(SGA)的共享池分配的私人空间。
注:
此限制仅适用于共享服务器体系结构。会话在SGA中的私人空间包括私人SQL和PL / SQL区,但不共享SQL和PL / SQL区。
COMPOSITE_LIMIT
指定的会话,在服务单位的总资源成本。
设置个人资源的限制_示例CREATE PROFILE app_user1 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;
如果您的APP_USER配置文件分配给用户,用户是受以下限制在随后的会话:
· 用户可以有任意数量的并发会话。
· 在一个会话中,用户可以无限量消耗的CPU时间。
· 一个单一的由用户调用,可以不占用CPU时间超过30秒。
· 单个会话不能持续超过45分钟。
· 在一个会话中,读取的数据块从内存和磁盘的默认配置文件中指定的限制。
· 一个单一的呼叫的用户无法从内存和磁盘读取1000多个数据块。
· 单个会话在SGA的内存无法分配超过15千字节。
· 在一个会话中,总资源成本不能超过5万个服务单位。
· 由于APP_USER配置文件为IDLE_TIME和密码限制,省略了限制,用户的默认配置文件中指定的对这些资源的限制。
password_parameters 密码参数使用下面的的条款设置密码参数。参数设置的时间长度是天数。出于测试目的,您可以指定分钟(ŋ / 1440),甚至几秒钟(ŋ / 86400)。
FAILED_LOGIN_ATTEMPTS
指定的失败登录到用户帐户的帐户被锁定之前的尝试次数。
PASSWORD_LIFE_TIME
指定可以使用相同的密码进行身份验证的天数。
如果还设置的值PASSWORD_GRACE_TIME,其密码已过期,如果它不改变在宽限期内,并进一步连接将被拒绝。如果您没有设置的值PASSWORD_GRACE_TIME,其默认的无限将导致数据库发出警告,但让用户继续无限期地连接。
PASSWORD_REUSE_TIME 和PASSWORD_REUSE_MAX 这两个参数必须相互配合的设置。
PASSWORD_REUSE_TIME
重用密码的天数
(比如说,我们经常会修改用户密码以保证安全等,那我修改了几次密码之后,我又想再次使用我曾经使用过的密码需要等待多少天之后才能再次使用)
PASSWORD_REUSE_MAX
重用密码需要等待修改多少次之后
(和上面的意思差不多,需要在密码修改过多少次之后才能使用曾经使用过的密码)
其实,系统会生成一个日志文件来存储密码的资料用来帮助这2条指令判断密码是否曾经使用过
例如,
如果你指定
PASSWORD_REUSE_TIME 50
PASSWORD_REUSE_MAX 5
则用户可以重复使用50天前修改过的密码,或者密码已经修改过了5次。
默认情况下,所有的参数都在默认配置文件设置为UNLIMITED。
PASSWORD_LOCK_TIME
指定的帐户连续失败的登录后被锁的天数。
PASSWORD_GRACE_TIME
在进入宽限期后开始发出警告,并且允许在指定的天数登录。在宽限期内如果不更改密码,密码会过期。
PASSWORD_VERIFY_FUNCTION
PASSWORD_VERIFY_FUNCTION子句允许CREATE PROFILE声明中参数传递的一个PL / SQL的密码复杂性验证脚本。Oracle数据库提供了一个默认的脚本,但你可以创建自己的程序或使用第三方软件。
功能:
1. 指定密码的复杂性验证程序的名称。
2. 指定NULL表示没有密码进行验证。
设定个人密码限制_示例 CREATE PROFILE app_user2 LIMIT FAILED_LOGIN_ATTEMPTS 5 PASSWORD_LIFE_TIME 60 PASSWORD_REUSE_TIME 60 PASSWORD_REUSE_MAX 5 PASSWORD_LOCK_TIME 1/24 PASSWORD_GRACE_TIME 10;以上内容源自官方文档,有对初学者不好理解的一小部分是我在听老师讲懂之后,添加进去的,并且我觉得我现在都很难以理解的一部分没有写出来,还是官方文档最全面,如有不对的地方,还望斧正!!