限制用户登录主库的代码

create or replace trigger logon_control   
 after logon on database   
declare   
  v_user      string(50);   
  v_module    string(50);
  v_db        string(10);
  v_uniquedb  string(10);
  v_result    number;
begin   
    SELECT SYS_CONTEXT('USERENV','DB_NAME') DB_UNIQUE_NAME,
           SYS_CONTEXT('USERENV','DB_UNIQUE_NAME') DB_UNIQUE_NAME,
           SYS_CONTEXT('USERENV','MODULE') MODULE_NAME,
           SYS_CONTEXT('USERENV','CURRENT_USER') CURRENT_USER          
      INTO v_db,v_uniquedb,v_module,v_user
    FROM DUAL;

   if v_db = v_uniquedb then       -- v9ebs unique_name is shdb, v10ebs unique_name is shdbdg
      SELECT COUNT(*) INTO v_result
        FROM (
              SELECT username FROM dba_users where username like '6%'
              UNION ALL
              SELECT emp_no FROM wufangshen.discover_tb_user
              MINUS
              SELECT emp_no FROM wufangshen.discover_realtime_user
              )
       WHERE username = v_user;
      
       if v_result=1 then
         RAISE_APPLICATION_ERROR(-20003,'You are not allowed to connect,please connect to v10ebs instead.');
      
       end if;
   end if;
end;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值