博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
通过触发器记录数据库连接信息
阅读量:6597 次
发布时间:2019-06-24

本文共 3022 字,大约阅读时间需要 10 分钟。

最近在梳理数据库程序连接信息,这里对脚本做个总结,希望对需要的同仁有所帮助

一、Oracle连接信息统计

create table logon_logs (logon_time date,username varchar2(30),machine varchar2(64),ipaddr varchar2(30))tablespace users; create or replace trigger logusersconnectsafter logon on database begininsert 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后台程序建立,不是则返回nullselect 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的idselect 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;--当前登陆的用户的idselect 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当此会话是客户端进程创建。否则,返回nullselect sys_context('USERENV','INSTANCE') from dual;--当前数据库实例的标示idselect 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-rrselect sys_context('USERENV','NLS_DATE_LANGUAGE') from dual;--表示日期的语言,如中文简体SIMPLIFIED CHINESEselect sys_context('USERENV','NLS_TERRITORY') from dual;--数据库服务器所在区域,如中国CHINAselect sys_context('USERENV','OS_USER') from dual;--操作系统的用户名select sys_context('USERENV','PROXY_USER') from dual;--是否使用代理用户。否返回nullselect sys_context('USERENV','PROXY_USERID') from dual;--代理用户idselect sys_context('USERENV','SESSION_USER') from dual;--当前认证的数据库用户名select sys_context('USERENV','SESSION_USERID') from dual;--当前认证的数据库用户名idselect sys_context('USERENV','SESSIONID') from dual;--当前会话idselect sys_context('USERENV','TERMINAL') from dual;--操作系统用户组select sys_context('USERENV','IP_ADDRESS') from dual;--当前会话主机ipselect sys_context('USERENV','HOST') from dual;--当前会话主机操作系统名

二、SQLServer连接信息统计

 

 

三、MySQL连接信息统计

 

四、PG连接信息统计

 

转载于:https://www.cnblogs.com/rangle/p/8796370.html

你可能感兴趣的文章
C++ 运算符重载(一)
查看>>
周末玩OPENWRT--多WAN PPTP
查看>>
phpexcel因特殊字符导出失败解决
查看>>
如何通过xmake进行交叉编译
查看>>
RecyclerView实现跑马灯效果
查看>>
C++单元测试框架:gtest
查看>>
HTML+css制作简易进度条
查看>>
mysql登录连接、增加用户、修改权限
查看>>
org.apache.jasper.JasperException: Unable to compile class for JSP:
查看>>
OSGi与Java EE
查看>>
cocos2d-x加box2d制作弹弓类游戏 第二部分
查看>>
【sed】个人用到的方法记录
查看>>
screen工具(虚拟终端)、nohup命令(让脚本后台运行)
查看>>
centos 卸载python2之后的解决办法
查看>>
hdu1711(kmp纯模板)
查看>>
MySQL-Utilities
查看>>
redis教程(四)之redis启动服务与连接
查看>>
STP,RSTP,MSTP和链路聚合
查看>>
SameText
查看>>
Oracle中adump、bdump、dpdump、udump目录中一些内容的使用
查看>>