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;