日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

oracle 添加登陆数据库触发器--记录IP 地址

發布時間:2025/7/14 数据库 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 oracle 添加登陆数据库触发器--记录IP 地址 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

----觸發器--- ---創建中間插入的表

create table session_history tablespace bap_data as (select sid,username,program,machine,'000.000.000.000'ipadd,sysdate moditime from v$session where 0=1);

---創建觸發器---只要登陸數據庫就觸發

create or replace trigger on_logon_trigger ?after logon on database ?begin insert into session_history select sid,username,program,machine,sys_context('userenv','ip_address'),sysdate from v$session where audsid = userenv('sessionid'); end;

---查詢登陸信息

select * from? session_history q where q.username not in ('SYS')

------------直接在數據庫SYS用戶層面修改----(實際操作是步驟3)

-- 1. 利用triger

begin ???

dbms_application_info.set_client_info(sys_context( 'userenv', 'ip_address' ) );

end;

2. 利用 DBMS_SESSION 過程包.

BEGIN

DBMS_SESSION.set_identifier(SYS_CONTEXT('USERENV', 'IP_ADDRESS'));

END;

3.我們可以通過觸發器

create or replace trigger on_logon_trigger

after logon on database

begin ???

dbms_application_info.set_client_info(sys_context( 'userenv', 'ip_address' ) );

end;

/

4.驗證 這樣當客戶端登陸后,在v$session的client_info列會記錄其相應的IP信息。

這里才查詢v$session ,你會發現 v$session 多了一列 記錄客戶端的IP.

select client_info from v$session;

select count(client_info) from v$session;

?set pagesize 1000 line 1000 select a.description,a.trigger_body from dba_triggers a where a.owner='SYS' AND A.status='ENABLED';

select count(1) from dba_triggers a where a.owner='SYS' AND A.status='ENABLED';

select client_info from v$session where client_info is not? null ;

?

----11G 直接添加就行;12C 需要給 CDB 和每個PDB 單獨添加

轉載于:https://www.cnblogs.com/ss-33/p/8931889.html

總結

以上是生活随笔為你收集整理的oracle 添加登陆数据库触发器--记录IP 地址的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。