ITPub博客

首页 > 数字化转型 > ERP > Oracle中如何保证用户只有一个Session登录

Oracle中如何保证用户只有一个Session登录

原创 ERP 作者:xypincle 时间:2017-02-20 10:02:02 0 删除 编辑

  1. SQL> create profile one_session limit sessions_per_user 1;

  2. SQL> create user test identified by test;
  3.  
  4. User created. www.2cto.com

  5. SQL> grant connect,resource to test;

  6. Grant succeeded.

  7. SQL> alter user test profile one_session;

  8. SQL> alter system set resource_limit=true;

  9. sqlplus test/test

  10. host sqlplus test/test

  11. ERROR:

  12. ORA-02391: exceeded simultaneous SESSIONS_PER_USER limit

  13. 但有个条件是如果是RAC, 则在其他instance还可以登录。

  14. --可以通过下面的语句查看修改后的 RESOURCE_LIMIT 中的value字段的值

  15. SELECT * FROM v_$parameter a WHERE lower(a.NAME) LIKE LOWER('%resource_limit%') ;

  16. --查看profile文件的内容
  17. SELECT * FROM dba_profiles a WHERE lower(a.profile) = lower('one_session') ;

  18. --撤销以上的修改
  19. SQL>alter system set resource_limit=false ;

  20. SQL>alter user U1050 profile default ;

  21. SQL>drop profile one_session ;

  22. --以下是不创建profile,直接修改default profile进行用户登录限制
  23. SQL>alter profile default limit SESSIONS_PER_USER 1 ;

  24. SQL>alter system set resource_limit=true;

  25. SQL>commit ;

  26. --撤销以上的修改
  27. SQL>alter profile default limit SESSIONS_PER_USER unlimited ;

  28. SQL>alter system set resource_limit=false;

  29. SQL>commit ;

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/28878983/viewspace-2133925/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2013-05-11

  • 博文量
    208
  • 访问量
    212356