在Oracle中,如果要设置一个用户可登录的session的个数,可通过设定一个profile,然后将user的profile属性改为这个profile即可。
首先创建profile:
sys@ORCL> create profile profile_test limit
2 sessions_per_user 3;
配置文件已创建
已用时间: 00: 00: 00.04
然后将profile属性加到所要限制的用户上:
sys@ORCL> alter user lyon profile profile_test;
用户已更改。
已用时间: 00: 00: 00.00
查看当前的resource_limit参数选项(默认为false):
sys@ORCL> show parameter resource_limit
NAME TYPE VALUE
------------------------------------ ----------- ------------------------------
resource_limit boolean FALSE
将属性修改为true。只有为true时,对用户所做的profile限制才会生效:
sys@ORCL> alter system set resource_limit = true scope=memory;
系统已更改。
已用时间: 00: 00: 00.01
测试登录(先以sqlplus用lyon用户连续登录三个窗口,然后第四次登录):
C:\Documents and Settings\wanghf>sqlplus lyon/passwd
SQL*Plus: Release 10.2.0.1.0 - Production on 星期六 10月 10 15:49:29 2009
Copyright (c) 1982, 2005, Oracle. All rights reserved.
ERROR:
ORA-02391: 超出同时存在的 SESSIONS_PER_USER 限制
请输入用户名:
可发现,在第四次登录时发生了该报错信息。
当resource_limit为false时,不会出现该问题。