資料庫的登入限制該怎麼實現?

wei-xh發表於2011-02-15

想寫一個觸發器,根據機器名(有一個白名單表)作出判斷,能不能讓此使用者登入,不知道該怎麼寫?

我寫了一個可貌似沒有任何作用,不知道哪裡有問題。user_login是白名單表。

create or replace trigger restrict_login
  after logon on database

BEGIN
  for c in (select count(*) a
              from v$session
             WHERE sid = Sys_Context('USERENV', 'SID') and (program='plsqldev.exe' OR PROGRAM='sqlplus.exe')
               AND machine IN (SELECT machine FROM user_login)) loop
    if c.a = 0 then
      raise_application_error(-20000, 'No access from sqlplus');
    end if;
  end loop;
end;
/

 

原來LOGON TRIGGER對於DBA使用者無效。問題解決。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/22034023/viewspace-687295/,如需轉載,請註明出處,否則將追究法律責任。

相關文章