使用profile控制session有效时间
用户希望可以作一个设定,使空闲超过30分钟的session失效。我们可以使用profile来做这个限定。
首先我们来设定resource_limit参数,起用资源限制。
SQL> conn / as sysdba
已连接
SQL> show parameter resource_limit
NAME TYPE VALUE
------------------------------------ ------------------------------------------------
resource_limit boolean FALSE
SQL>alter system set resource_limit=TRUE
系统已更改
SQL> create profile session_limit limit idle_time 30;
配置文件已创建
SQL>alter user maggie profile session_limit;
用户已更改
下面我们测试一下:
SQL>conn maggie/maggie
已连接
SQL> alter session set nls_date_format='YYYY-MM-DD HH:MI:SS';
Session altered.
SQL> select sysdate from dual;
SYSDATE
-------------------
2008-12-25 04:20:18
过30分钟以后再执行
SQL> select sysdate from dual;
*
ERROR 位于第1行:
ORA-02396: 超过最大空闲时间,请重新连接
需要注意的是,无论是通过修改初始化参数、创建PROFILE、修改用户的PROFILE还是修改PROFILE中的LIMIT的值,资源限制都会从用户下次登陆到数据库开始,而对当前已经连接的会话无效。
同样的道理,上述的任何修改导致资源限制的改变或删除也是对新的会话而言,对于已经存在的会话会一直保持这个资源限制直到会话退出。来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/10640532/viewspace-521245/,如需转载,请注明出处,否则将追究法律责任。