技术开发 频道

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
相关文章