• <ul id="mayc0"></ul>
    <ul id="mayc0"><center id="mayc0"></center></ul>
    <strike id="mayc0"><input id="mayc0"></input></strike>
    <ul id="mayc0"></ul>
  • 始創于2000年 股票代碼:831685
    咨詢熱線:0371-60135900 注冊有禮 登錄
    • 掛牌上市企業
    • 60秒人工響應
    • 99.99%連通率
    • 7*24h人工
    • 故障100倍補償
    您的位置: 網站首頁 > 幫助中心>文章內容

    Oracle數據庫網絡與安全FAQ精粹匯集(二)

    發布時間:  2012/9/5 18:54:49

    [A]Oracle9i默認的XML DB把HTTP的默認端口設為8080,這是一個太常用的端口了,很多別的WebServer都會使用這個端口,

    如果我們安裝了它,最好修改一下,避免沖突,如果不使用呢,就最好不要安裝

    提供三種修改的方法

    1.dbca,選擇你的數據庫,然后Standard Database Features->Customize->Oracle XML DB option,進入這個畫面你應該就知道怎么改了。

    2.OEM console,在XML Database 的配置里面修改

    3.用oracle提供的包:

    -- 把HTTP/WEBDAV端口從8080改到8081

    SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),

    '/xdbconfig/sysconfig/protocolconfig/httpconfig/http-port/text()',8081))

    /

    -- 把FTP端口從2100改到2111

    SQL> call dbms_xdb.cfg_update(updateXML(dbms_xdb.cfg_get(),

    '/xdbconfig/sysconfig/protocolconfig/ftpconfig/ftp-port/text()',2111))

    /

    SQL> commit;

    SQL> exec dbms_xdb.cfg_refresh;

    -- 檢查修改是否已經成功

    SQL> select dbms_xdb.cfg_get from dual;

    [Q]怎么捕獲用戶登錄信息,如SID,IP地址等

    [A]可以利用登錄觸發器,如

    CREATE OR REPLACE TRIGGER tr_login_record

    AFTER logon ON DATABASE

    DECLARE

    miUserSid NUMBER;

    mtSession v$session%ROWTYPE;

    CURSOR cSession(iiUserSid IN NUMBER) IS

    SELECT * FROM v$session

    WHERE sid=iiUserSid;

    BEGIN

    SELECT sid INTO miUserSid FROM v$mystat WHERE rownum<=1;

    OPEN cSession(miUserSid);

    FETCH cSession INTO mtSession;

    --if user exists then insert data

    IF cSession%FOUND THEN

    INSERT INTO log$information(login_user,login_time,ip_adress,ausid,terminal,

    osuser,machine,program,sid,serial#)

    VALUES(ora_login_user,SYSDATE,SYS_CONTEXT ('USERENV','IP_ADDRESS'),

    userenv('SESSIONID'),

    mtSession.Terminal,mtSession.Osuser,

    mtSession.Machine,mtSession.Program,

    mtSession.Sid,mtSession.Serial#);

    ELSE

    --if user don't exists then return error

    sp_write_log('Session Information Error:'SQLERRM);

    CLOSE cSession;

    raise_application_error(-20099,'Login Exception',FALSE);

    END IF;

    CLOSE cSession;

    EXCEPTION

    WHEN OTHERS THEN

    sp_write_log('Login Trigger Error:'SQLERRM);

    END tr_login_record;

    在以上觸發器中需要注意以下幾點

    1、該用戶有v_$session與v_$mystat的對象查詢權限,可以在sys下對該擁護顯式授權。

    2、sp_write_log原本是一個寫日志的過程,可以置換為自己的需要,如null跳過。

    3、必須在創建該觸發器之前創建一個log$information的表記錄登錄信息。

    [Q]怎么捕獲整個數據庫的DDL語句或者是說對象結構變化與修改

    [A]可以采用DDL觸發器,如

    CREATE OR REPLACE TRIGGER tr_trace_ddl

    AFTER DDL ON DATABASE

    DECLARE

    sql_text ora_name_list_t;

    state_sql ddl$trace.ddl_sql%TYPE;

    BEGIN

    FOR i IN 1..ora_sql_txt(sql_text) LOOP

    state_sql := state_sqlsql_text(i);

    END LOOP;

    INSERT INTO ddl$trace(login_user,ddl_time,ip_address,audsid,

    schema_user,schema_object,ddl_sql)

    VALUES(ora_login_user,SYSDATE,userenv('SESSIONID'),

    sys_context('USERENV','IP_ADDRESS'),

    ora_dict_obj_owner,ora_dict_obj_name,state_sql);

    EXCEPTION

    WHEN OTHERS THEN

    sp_write_log('Capture DDL Excption:'SQLERRM);

    END tr_trace_ddl;

    在創建以上觸發器時要注意幾點

    1、必須創建一個ddl$trace的表,用來記錄ddl的記錄

    2、sp_write_log原本是一個寫日志的過程,可以置換為自己的需要,如null跳過

     

     
     

    本文出自:億恩科技【www.vbseamall.com】

    服務器租用/服務器托管中國五強!虛擬主機域名注冊頂級提供商!15年品質保障!--億恩科技[ENKJ.COM]

  • 您可能在找
  • 億恩北京公司:
  • 經營性ICP/ISP證:京B2-20150015
  • 億恩鄭州公司:
  • 經營性ICP/ISP/IDC證:豫B1.B2-20060070
  • 億恩南昌公司:
  • 經營性ICP/ISP證:贛B2-20080012
  • 服務器/云主機 24小時售后服務電話:0371-60135900
  • 虛擬主機/智能建站 24小時售后服務電話:0371-60135900
  • 專注服務器托管17年
    掃掃關注-微信公眾號
    0371-60135900
    Copyright© 1999-2019 ENKJ All Rights Reserved 億恩科技 版權所有  地址:鄭州市高新區翠竹街1號總部企業基地億恩大廈  法律顧問:河南亞太人律師事務所郝建鋒、杜慧月律師   京公網安備41019702002023號
      0
     
     
     
     

    0371-60135900
    7*24小時客服服務熱線