ORACLE 记录连接用户的IP地址以及登录失败用户的IP地址
前言:实现的功能主要是,oracle登录成功记录登录用户ip地址,登录失败记录登录失败ip地址
1,需要建立一个触发器记录登录成功的客户端用户的ip地址
大家都知道在v$session 中记录着客户端的机器名称,但是没有IP , 如果记录clinet ip 呢?先运行DBMS_SESSION 过程包注册,然后执行存储过程on_logon_trigger,这样当客户端登陆后,在v$session的client_info列会记录其相应的IP信息。
利用 DBMS_SESSION 过程包,先执行
BEGIN
DBMS_SESSION.set_identifier(SYS_CONTEXT('USERENV', 'IP_ADDRESS'));
END;
再执行触发器trigger
createorreplacetrigger on_logon_trigger
after logon ondatabase
begin
dbms_application_info.set_client_info(sys_context( 'userenv', 'ip_address' ) );
end;
执行这些过程包触发器需要dba权限。
----------------------------------------------------------------------------------------------------------------
<版权所有,文章允许转载,但必须以链接方式注明源地址,否则追究法律责任!>
原博客地址: http://blog.csdn.net/mchdba/article/details/45749131
原作者:黄杉 (mchdba)
----------------------------------------------------------------------------------------------------------------
2,然后使用超级管理员通过plsql登录,就可以查看连接上oracle的ip信息:
执行查询SQL:
select username,program,machine,client_info,sys_context('userenv','ip_address') as ipadd
from v$session s
where username is not null
order by username,program,machine;
信息如下所示:
3,建立触发器实现登录失败的时候记录日志信息:
写一个触发器,触发器的信息记录在alert日志里面,通过查看alert日志来获取登录失败的用户信息。
触发器如下:
CREATE OR REPLACE TRIGGERlogon_denied_to_alert
AFTER servererror ON DATABASE
DECLARE
message VARCHAR2(168);
ip VARCHAR2(15);
v_os_user VARCHAR2(80);
v_module VARCHAR2(50);
v_action VARCHAR2(50);
v_pid VARCHAR2(10);
v_sid NUMBER;
v_program VARCHAR2(48);
BEGIN
IF(ora_is_servererror(1017)) THEN
-- get ip FOR remote connections :
IF upper(sys_context('userenv', 'network_protocol')) = 'TCP' THEN
ip := sys_context('userenv', 'ip_address');
END IF;
SELECT sid INTO v_sid FROM sys.v_$mystat WHERE rownum < 2;
SELECT p.spid, v.program
INTO v_pid, v_program
FROM v$process p, v$session v
WHERE p.addr = v.paddr
AND v.sid = v_sid;
v_os_user := sys_context('userenv', 'os_user');
dbms_application_info.read_module(v_module, v_action);
message := to_char(SYSDATE, 'YYYYMMDD HH24MISS') ||
' logon denied from ' || nvl(ip,'localhost') || ' ' ||
v_pid || ' ' || v_os_user || 'with ' || v_program || ' – ' ||
v_module || ' ' || v_action;
sys.dbms_system.ksdwrt(2, message);
ENDIF;
END;
/
执行报错:
Compilation errors for TRIGGERPOWERDESK.LOGON_DENIED_TO_ALERT
Error: PLS-00201: identifier'SYS.DBMS_SYSTEM' must be declared
Line: 35
Text: sys.dbms_system.ksdwrt(2, message);
Error: PL/SQL: Statement ignored
Line: 35
Text: sys.dbms_system.ksdwrt(2, message);
需要赋予权限
grant execute on sys.dbms_system topowerdesk;
之后执行成功了。
4,登录失败查看alert信息
Pslql登录,如下图所示:
再去后台查看alert日志,就会看到失败信息记录:
Fri May 15 19:11:09 2015
20150515 191109 logon denied from192.168.120.169 20934 Administrator with plsqldev.exe ? plsqldev.exe
20150515 191109 logon denied from192.168.120.169 20934 Administrator with plsqldev.exe ? plsqldev.exe
Fri May 15 19:11:18 2015
20150515 191118 logon denied from192.168.120.169 20958 Administrator with plsqldev.exe ? plsqldev.exe
20150515 191118 logon denied from 192.168.120.16920958 Administrator with plsqldev.exe ? plsqldev.exe
ORACLE 记录连接用户的IP地址以及登录失败用户的IP地址相关推荐
- linux用户解锁pam_tally,多次登录失败用户被锁定及使用Pam_Tally2解锁
在linux系统中,用户多次登录失败会被锁定,一段时间内将不能再登录系统,这是一般会用到Pam_Tally2进行账户解锁. 了解PAM Linux-PAM (Pluggable Authenticat ...
- 用户 'NT AUTHORITY/NETWORK SERVICE' 登录失败 的解决方法(转)
今天安装一个网站时, 出现了用户 'NT AUTHORITY/NETWORK SERVICE' 登录失败的错误 在网上找了一些,终于找了一下,终于找到解决办法: 第一步:把'NT AUTHORITY\ ...
- IIS - 用户 NT AUTHORITY\NETWORK SERVICE 登录失败解决方法
"/"应用程序中的服务器错误. -------------------------------------------------------------------------- ...
- 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败问题
安装了windows2003 with sp1,想用来学习asp.net,成功安装了ASP.NET Portal Starter Kit ,但是运行发现以下提示: "/PortalCSVS& ...
- Linux 查看登录日志及登录失败用户的ip
2019独角兽企业重金招聘Python工程师标准>>> Linux 查看登录成功的用户信息 命令: last 最新的登录记录在最前面,所以可以用 一下命令来查看. last | le ...
- win10登录失败未授予用户在此计算机上,登录失败:未授予用户在此计算机上的请求登录类型。无法访问...
登录失败:未授予用户在此计算机上的请求登录类型.无法访问.您可能没有权限使用网络资源.请与这台服务器的管理员联系以查明您是否有访问权限. 如果出现"xxx计算机无法访问,您可能没有权限使用网 ...
- 无法打开登录所请求的数据库database登录失败用户登录失败
异常详细信息: System.Data.SqlClient.SqlException: 用户 'xxx\ASPNET' 登录失败. 这是怎么回事啊? 因为你的程序连接SQLServer的连接字符串是用 ...
- 登录失败、请确认地址和端口
使用智能安全联网设备客户端提示:登录服务平台连接失败,请确认地址和端口! 错误提示如下: 解决步骤: 1.ping 一下安全联网设备.人脸门禁设备IP看是否可以正常通信. 首先要知道安全联网设备.人脸 ...
- 用户 'NT AUTHORITY\NETWORK SERVICE' 登录失败问题解决方案
当连接sqlserver使用信任连接(参看Web.Config文件)时就会出这个错误,在WindowsXP当中,ASP.NET的运行帐号是ASPNET,而在Windows server2003当中,运 ...
最新文章
- 使用SampleGrabber过滤器扑获图像
- c语言中不带任何修饰符的浮点变量,江苏省计算机等级考试二级C语言笔试辅导题目...
- Fiddler绕过前端直接和后台进行交互
- saltstack 远程执行之返回写入到mysql
- 使用CImageList的一点心得
- 在js中调用dede标签
- 渗透测试工程是的主要工作
- css怎么随着鼠标移动,利用CSS sprites制作随着鼠标移动的动画背景
- 期望、方差的线性关系证明
- OBS第三方推流直播教程
- Stimulsoft Reports.WEB 23.1.8 完美Crack
- 华为云云商店星品入“沪”,加速产业数字共赢!
- 字符串copy函数技术推演
- 汇顶科技外包java_汇顶科技深度分析
- APS食品行业生产计划排程解决方案
- 免费使用的pdf转cad软件使用
- 教你两式妙招杀死“顽固不化”的病毒进程-
- 操作系统的接口与实现
- 三星电视测试屏幕的软件有哪些,三星电视的环境屏是什么,它当真有隐身功能?...
- arithmetic和algorithm之间的区别?