一、Profile目的:
Oracle系统中的profile可以用来对用户所能使用的数据库资源进行限制,使用Create Profile命令创建一个Profile,用它来实现对数据库资源的限制使用,如果把该profile分配给用户,则该用户所能使用的数据库资源都在该profile的限制之内。具体管理内容有:CPU的时间、I/O的使用、IDLE TIME(空闲时间)、CONNECT TIME(连接时间)、并发会话数量、口令机制等。
二、条件:
创建profile必须要有CREATE PROFILE的系统权限。为用户指定资源限制,必须:
1.动态地使用alter system或使用初始化参数resource_limit使资源限制生效。该改变对密码资源无效,密码资源总是可用。
SQL> show parameter resource_limit
SQL> alter system set resource_limit=true;
2.使用create profile创建一个定义对数据库资源进行限制的profile。
例: create profile one_session limit sessions_per_user 1;(创建一个名为one_session的Profile,设置限制数量为1)
3.使用create user 或alter user命令把profile分配给用户。
例: alter user test profile one_session;(分配给test用户)
三、查询Profile
可通过dba_profiles视图查看一下系统中默认都有哪些PROFILE
四、创建 profile 的语法如下:
CREATE PROFILE profile
LIMIT { resource_parameters 对资源的限制
| password_parameters 对密码的限制
}... ;
<resource_parameters>
{{ SESSIONS_PER_USER 每个用户名并行会话数
| CPU_PER_SESSION 每会话可用的CPU时间,单位0.01秒
| CPU_PER_CALL 一次SQL调用(解析、执行和获取)允许的CPU时间
| 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 密码使用天数,默认180天
| PASSWORD_REUSE_TIME 密码可重用的间隔时间(结合PASSWORD_REUSE_MAX)
| PASSWORD_REUSE_MAX 密码最大改变次数(结合PASSWORD_REUSE_TIME)
| PASSWORD_LOCK_TIME 超过试错次数后,被锁定的天数,默认1天
| PASSWORD_GRACE_TIME 密码过期后还可使用原密码的天数
}
{ expr | UNLIMITED | DEFAULT }
| PASSWORD_VERIFY_FUNCTION
{ function | NULL | DEFAULT }
}