檢視連線端IP
綜合網上各類資料整理而成;
檢視單籤連線到資料庫上的客戶端IP;
1、資料庫系統上執行
linux下檢視
netstat |grep 1521
windows下檢視
netstat -na | find "1521"
2. 利用 DBMS_SESSION 過程包.
在當前會話下執行語句,給在v$session中顯示當前會話的ip資訊;
exec DBMS_SESSION.set_identifier(SYS_CONTEXT('USERENV', 'IP_ADDRESS'));
select s.CLIENT_IDENTIFIER,s.* from v$session s;
顯示單籤會話的連線情況:
select AUDSID,sysdate,null,sys.login_user,machine,SYS_CONTEXT('USERENV','IP_ADDRESS'),program from v$session where AUDSID=USERENV('SESSIONID');
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;
這樣當客戶端登陸後,在v$session的client_info列會記錄其相應的IP資訊。
select client_info from v$session;
4.透過觸發器,將登陸記錄到表裡面;
Step 00 Check PUBLIC SYSTEM VIEW PRIVILEGE
SELECT * FROM DBA_TAB_PRIVS T
WHERE T.grantee='PUBLIC'
AND T.table_name LIKE 'V_$%'
Step 01 grant select privilege as sys user login:
grant select on v_$session to public;
grant select on v_$mystat to public;
Step 02 create login$information table:
create table LOGIN$INFORMATION
(
LOGIN_USER VARCHAR2(30),
LOGIN_TIME DATE,
IP_ADRESS VARCHAR2(256),
AUSID NUMBER,
TERMINAL VARCHAR2(16),
OSUSER VARCHAR2(30),
MACHINE VARCHAR2(64),
PROGRAM VARCHAR2(64),
SID NUMBER,
SERIAL# NUMBER
)
Step 03 create trigger on database level:
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 login$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
null;
CLOSE cSession;
raise_application_error(-20099, 'Login Exception', FALSE);
END IF;
CLOSE cSession;
EXCEPTION
WHEN OTHERS THEN
null;
END tr_login_record;
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29519108/viewspace-2058279/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 檢視Oracle連線數Oracle
- 檢視sqlserver連線數SQLServer
- 檢視心跳線使用哪個IP
- 檢視Linux連線數Linux
- 檢視使用者連線
- MYSQL 檢視最大連線數和修改最大連線數MySql
- win7,kali改ip加遠端連線Win7
- 檢視網路連線數netstat -an
- 檢視並修改oracle最大連線數Oracle
- 檢視系統網路連線資訊
- ORACLE檢視並修改最大連線數Oracle
- Oracle連線檢視DML操作的限制Oracle
- 客戶端連線故障檢查流程手段客戶端
- 在動態IP下遠端連線計算機計算機
- 檢視當前pg會話連線數會話
- Linux檢視埠併發連線數Linux
- Linux 檢視網路連線狀態Linux
- Oracle檢視允許的最大連線數和當前連線數Oracle
- 檢視oracle資料庫的連線數以及使用者檢視Oracle資料庫
- 區分socket連線和tcp/ip連線TCP
- mysql設定指定ip遠端訪問連線例項MySql
- 獲取SQL Server中連線的客戶端IP地址SQLServer客戶端
- Linux下檢視Nginx的併發連線數和連線狀態LinuxNginx
- linux 檢視伺服器的連線數Linux伺服器
- linux系統併發連線數檢視Linux
- sql tunning1 物化內連線檢視:SQL
- 如何遠端連線 遠端桌面軟體連線
- 如何遠端連線 桌面設定遠端桌面連線
- win10遠端桌面連線 遠端桌面視窗全屏Win10
- oracle檢視允許的最大連線數和當前連線數等資訊Oracle
- mysql設定ip連線MySql
- mysql 通過IP連線MySql
- docker檢視容器IP地址Docker
- oracle檢視連結的hostname 和IP分別是什麼Oracle
- 顯示連線Oracle資料庫的客戶端IP地址Oracle資料庫客戶端
- 怎麼檢視印表機ip地址 如何在印表機上檢視ip地址
- 檢視已連線過的 Wi-Fi 密碼密碼
- ss:檢視網路連線的另一種方法