用户常争用的系统资源:
- cpu使用时间
- 内存逻辑读取个数
- 每个用户同时可以连接的会话数据
- 一个会话的内存空间和持续时间
- 每次会话的专用SGA空间
通过设置用户资源文件可对用户的资源存取进行限制。
备注:建立数据库时,oracle会自动建立名为default的profile。
当建立用户没有指定profile选项,那么oracle就会将default分配给用户。
创建用户资源文件
语法:
CREATE PROFILE filename LIMIT
SESSION_PER_USER integer
CPU_PER_SESSION integer
USER_PER_CALL integer
CONNECT_TIME integer
各项含义说明
SESSION_PER_USER:
用户可以同时连接的会话数量限额;
CPU_PER_SESSION:
用户在一次会期间可占用的CPU时间总量限额,单位为百分之一秒;
USER_PER_CALL:
用户一次SQL调用可用的CPU时间总量限额,单位为百分之一秒;
LOGICAL_READS_PER_SESSION:
在一次数据库会话期间能够读取的数据库块的个数限额;
LOGICAL_READS_PER_CALL:
一次SQL调用可以读取的数据库块数限额;
IDLE_TIME:
用户连接到数据库后的可空闲时间限额,单位为分钟,若空闲时间超过此值,则连接被断开;
CONNECT_TIME:
一次连接的时间总量限额,单位为分钟,连接时间超过此值时,连接被断开;
PRIVATE_SGA
:用户么有的SGA区的大小,单位为数据库块,默认值为UNLIMITED;
COMPOSITE_LIMIT
:这是一项由上述限制参数构成的组合资源项。
FAILED_LOGIN_ATTEMPTS
:用户登录时,允许用户名/密码校验失败致使用登录失败的次数限额,超过该次数,帐户被锁定;
PASSWORD_LIFE_TIME
:口令有效时间,单位为天数,超过这一时间,拒绝登录,须重新设置口令,默认值为UNLIMITED;
PASSWORD_REUSE_TIME
:一个失效口令经过多少天后才可重新利用,默认为UNLIMITED;
PASSWORD_REUSE_MAX
:一个口令可重复使用的次数;
PASSWORD_LOCK_TIME
:当登录失败达到FAILED_LOGIN_ATTEMPS时,帐户被锁定,该参数用于设定被锁定的天数;
案例需求:
当会话空间超过20分钟,或者连接时间超过120分钟,又或者执行一个SQL耗费超过7.5秒,再或者这几个资源限制加起来的总数超过800,则系统自动终止会话。
DLE_TIME 20
CONNECT_TIME 120
CPU_PER_CALL 750
COMPOSITE_LIMT 800
演示应用
1)创建一个用户资源文件
create profile hr_users limit
SESSIONS_PER_USER 3
cpu_per_session UNLIMITED
connect_time 30
logical_reads_per_session DEFAULT
logical_reads_per_call 1000
private_sga 15K
composite_limit 500000
password_life_time 90
2)显示用户资源文件信息
SQL> select * from dba_profiles where profile = upper('hr_users');
3)给用户设定用户资源文件
sql>alter user tom profile hr_users
4)删除Profile
sql>drop profile hr_user
1 条评论
数据库大佬!