・ロ。シ・爨ヒフ皃
テク「。ヲフネタユ。。サ


ORACLE。。・サ・ュ・螂・ニ・」。。ACCESS、胼XCEL、ォ、鯊ワツウ、オ、サ、ハ、、

M.S

v0.1, 2006-03-06


ACCESS、胼XCEL、ォ、鬢ハ、ノ。「ニテト熙ホ・ラ・・ー・鬣爨ォ、鯊ワツウ、オ、サ、ソ、ッ、ハ、、・ア。シ・ケ、ャ、「、熙゛、ケ。」
タワツウ、キ、ソセケ遉マ。「タワツウ、レ、、ネニアサヒ。「・・ー、筅ネ、熙ソ、、。「、ハ、ノ、ハ、ノ。」。」
イ霄ネ、キ、ニ・ネ・・ャ。シ、ナウン、ア、ニ。「ツミアキ、ソ、ウ、ネ、ャ、「、熙゛、ケ。」
・ネ・・ャ。シ、ォ、キ、゛、ケ、ホ、ヌ。「サイケヘ、ヒ、キ、ニ、ッ、タ、オ、、。」
セー。「・ネ・・ャ。シ、ツケヤ、ケ、・ケ・ュ。シ・゛。ハ・譯シ・カ。ヒ、ヒ、マ。「GRANT、ヌ

  grant resource,connect,alter system to xxxx;
  grant select any dictionary to xxxx;
、ソ、ィ、ニ、ッ、タ、オ、、。」
、ウ、、鬢マ、「、ッ、゛、ヌサイケヘ、ヒ、ケ、ョ、゛、サ、」
、ウ、、オ、ヒス、タオ、キ。「イソ、鬢ォ、ホツサウイ、ャネッタク、キ、ニ、箍タレタユヌ、、マサチ、゛、サ、」
チエ、ニウニシォ、ホタユヌ、、ヒ、ェ、、、ニケヤ、テ、ニ、ッ、タ、オ、、、゛、サ。」

1. TABLE、ネPROCEDURE、ネTRIGGER

REATE TABLE killer_log
AS
SELECT * FROM V$SESSION WHERE rownum < 1;

CREATE OR REPLACE PROCEDURE killer_proc
  (
    i_sid     IN NUMBER,
    i_serial# IN NUMBER
  )  IS
    PRAGMA AUTONOMOUS_TRANSACTION;
    v_csr INTEGER;
    v_rowctr INTEGER;
    v_sqlstr VARCHAR2(100);
  BEGIN

     insert into killer_log 
     select * from sys.v_$session where sid=i_sid and serial#=i_serial#;
     commit;

    v_sqlstr := 'ALTER SYSTEM KILL SESSION ''' ||
                 TO_CHAR(i_sid)                ||
                 ','                           ||
                 TO_CHAR(i_serial#)            ||
                 ''' immediate';
     v_csr := DBMS_SQL.OPEN_CURSOR;
     DBMS_SQL.PARSE(v_csr, v_sqlstr, DBMS_SQL.NATIVE);
     v_rowctr := DBMS_SQL.EXECUTE(v_csr);
     DBMS_SQL.CLOSE_CURSOR(v_csr);

  EXCEPTION
   when OTHERS then
      dbms_output.put_line('killer_proc err');
  END;
  /
  

CREATE OR REPLACE TRIGGER logon_killer
   AFTER LOGON
   ON DATABASE
  DECLARE
   v_sid     NUMBER;
   v_serial# NUMBER;
   v_program VARCHAR2(64);
   v_jobno   INTEGER;
 BEGIN
   SELECT sid,serial#,program
     INTO v_sid, v_serial#,v_program
     FROM sys.v_$session
    WHERE audsid =
      (
        SELECT USERENV('SESSIONID')
        FROM dual
      );
    IF (upper(v_program) like 'MSACCESS.EXE%')
       or (upper(v_program) like 'EXCEL.EXE%')
    THEN
        DBMS_JOB.SUBMIT(
          job=>v_jobno,
          what=>'killer_proc('||v_sid||', '||v_serial#||');'
        );
    END IF;
 EXCEPTION
  when OTHERS then
      dbms_output.put_line('logon_killer err');
 END;
 /

2. ケケソキヘイ


Copyright (C) 2006 System Infinity Corporation. All rights reserved.