Oracle中用profile限制用户资源
【IT168 技术文档】Oracle 的这个功能真不错。如果应用程序写的不好,造成连接数过多,数据库或者监听器就会出问题。用 profile 就可以限制一个用户的并发连接数了。
先看看初始化参数 resource_limit 的设置,如果是 false,profile 是不生效的。
alter system set resource_limit=true scope=both;
建立一个 profile:
CREATE PROFILE DEFAULT1 LIMIT
SESSIONS_PER_USER 3
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PRIVATE_SGA UNLIMITED
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_LOCK_TIME UNLIMITED
PASSWORD_GRACE_TIME UNLIMITED
PASSWORD_VERIFY_FUNCTION NULL;
这里只修改了SESSIONS_PER_USER,其它使用缺省值,其实可以设置的资源很多。
修改用户的 profile:
ALTER USER user1 PROFILE DEFAULT1;
OK,试一下,当创建第四个 session 时报错:ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit
注意,在修改用户的 profile 时当前的用户 session 不受影响。
0
相关文章
