Oracle 11g手动用户身份验证

时间:2014-09-08 15:35:22

标签: oracle plsql oracle11g oracle-sqldeveloper

我需要帮助在Oracle DB 11g中创建手动用户身份验证。

包含授权用户名的单独表格。如果用户不在桌子中,他将会收到一条消息,说明“您未获得授权”等信息。

这是我创建的函数,用于根据ref table中的用户名存在获取返回代码:

create or replace function user_check return integer is
 user_name varchar2(10);
 cursor usr is select * from user_ref;
begin
 select USERNAME into user_name 
   from v$session where audsid = sys_context('userenv','sessionid');
 for u in usr loop
   if u.user_name = user_name then
     return 1;
     goto out_of_loop;
   end if;
 end loop;
 return 0;
 <<out_of_loop>>
 null;
end;
/

我正在尝试创建一个触发器:

create or replace trigger user_verify_trg after logon on database
declare
  sid varchar2(10);
  serial varchar2(10);
  q varchar2(100);
begin
  if(gs.user_check = 1) then
    select SID, serial# into sid,serial 
    from v$session where audsid = sys_context('userenv','sessionid');
    q := 'alter system kill session '||sid||','||serial;
    execute immediate q;
  end if;
end;
/

但它不起作用。请帮忙。

0 个答案:

没有答案