最近在梳理資料庫程式連接信息,這裡對腳本做個總結,希望對需要的同仁有所幫助 一、Oracle連接信息統計 sys_context函數使用方法以及含義如下: 二、SQLServer連接信息統計 三、MySQL連接信息統計 四、PG連接信息統計 ...
最近在梳理資料庫程式連接信息,這裡對腳本做個總結,希望對需要的同仁有所幫助
一、Oracle連接信息統計
create table logon_logs (logon_time date, username varchar2(30), machine varchar2(64), ipaddr varchar2(30)) tablespace users; create or replace trigger logusersconnects after logon on database begin insert into logon_logs values(sysdate, user, sys_context('USERENV','HOST'), sys_context('USERENV','IP_ADDRESS')); commit; end; /
sys_context函數使用方法以及含義如下:
第一個參數為'USERENV',是固定的,第二個參數也是固定的,但是是多選固定,可選的值如下所示: select sys_context('USERENV','AUTHENTICATION_TYPE') from dual;--用戶的認證類型 select sys_context('USERENV','AUTHENTICATION_DATA') from dual;--未知 select sys_context('USERENV','BG_JOB_ID') from dual;--當前指定id的會話是否為oracle後臺程式建立,不是則返回null select sys_context('USERENV','CLIENT_INFO') from dual;--通過dbms_application_info包可以存儲高達64位元組的用戶會話信息 select sys_context('USERENV','CURRENT_SCHEMA') from dual;--預設的schema將被當做當前的schema。當在當前會話中使用ALTER SESSION SET CURRENT_SCHEMA語句的時候,它的查詢返回值將被改變 select sys_context('USERENV','CURRENT_SCHEMAID') from dual;--當前schema的id select sys_context('USERENV','CURRENT_USER') from dual;--當前的登陸用戶 select REPLACE(SUBSTR(sys_context('USERENV','HOST'),1,30),'\',':') from dual;--當前會話主機操作系統名 select sys_context('USERENV','CURRENT_USERID') from dual;--當前登陸的用戶的id select sys_context('USERENV','DB_DOMAIN') from dual;--為資料庫的域指定初始化參數 select sys_context('USERENV','DB_NAME') from dual;--資料庫實例名 select sys_context('USERENV','ENTRYID') from dual;--可用的審計標示符。不能再分散式sql語句中使用此選項。使用USERENV關鍵字必須置AUDIT_TRAIL的初始化參數為真。 select sys_context('USERENV','EXTERNAL_NAME') from dual;--資料庫用戶的擴展名 select sys_context('USERENV','FG_JOB_ID') from dual;--返回作業id當此會話是客戶端進程創建。否則,返回null select sys_context('USERENV','INSTANCE') from dual;--當前資料庫實例的標示id select sys_context('USERENV','ISDBA') from dual;--當前用戶是否是以dba身份登錄 select sys_context('USERENV','LANG') from dual;--iso對‘LANGUAGE’的簡稱,查詢的參數比“LANGUAGE”短 select sys_context('USERENV','LANGUAGE') from dual;--結果為當前資料庫使用的存儲語言,跟上面查詢意義一樣 select sys_context('USERENV','NETWORK_PROTOCOL') from dual;--用於通信的網路協議 select sys_context('USERENV','NLS_CALENDAR') from dual;--當前會話使用的,格林尼治時間 select sys_context('USERENV','NLS_CURRENCY') from dual;--本地化的貨幣符,如人民幣為¥,美元符為$ select sys_context('USERENV','NLS_DATE_FORMAT') from dual;--當前使用的日期格式,一般中國為dd-mon-rr select sys_context('USERENV','NLS_DATE_LANGUAGE') from dual;--表示日期的語言,如中文簡體SIMPLIFIED CHINESE select sys_context('USERENV','NLS_TERRITORY') from dual;--資料庫伺服器所在區域,如中國CHINA select sys_context('USERENV','OS_USER') from dual;--操作系統的用戶名 select sys_context('USERENV','PROXY_USER') from dual;--是否使用代理用戶。否返回null select sys_context('USERENV','PROXY_USERID') from dual;--代理用戶id select sys_context('USERENV','SESSION_USER') from dual;--當前認證的資料庫用戶名 select sys_context('USERENV','SESSION_USERID') from dual;--當前認證的資料庫用戶名id select sys_context('USERENV','SESSIONID') from dual;--當前會話id select sys_context('USERENV','TERMINAL') from dual;--操作系統用戶組 select sys_context('USERENV','IP_ADDRESS') from dual;--當前會話主機ip select sys_context('USERENV','HOST') from dual;--當前會話主機操作系統名
二、SQLServer連接信息統計
三、MySQL連接信息統計
四、PG連接信息統計