你好,欢迎来到电脑编程技巧与维护杂志社! 杂志社简介广告服务读者反馈编程社区  
合订本订阅
 
 
您的位置:技术专栏 / Linux开发
oracle 基础(15)
 

这些行的描述性很高,但嵌入的命令(如 (COMMAND=stop))可能使它难于破解。 这种情况下,编写另一个函数以提取字符串中的值:

create or replace function extract_value
(
    p_in varchar2,
    p_param in varchar2
)
return varchar2
as
    l_begin     number(3);
    l_end       number(3);
    l_val       varchar2(2000);
begin
    l_begin := instr (upper(p_in), '('||p_param||'=');
    l_begin := instr (upper(p_in), '=', l_begin);
    l_end := instr (upper(p_in), ')', l_begin);
    l_val := substr (p_in, l_begin+1, l_end - l_begin - 1);
    return l_val;
end;

这样,监控将变得非常简单。 发现失败登录尝试所要执行的操作就是发出

col l_user format a10with the embedde
col service format a20
col logdate format a20
col host format a10
col RC format a5
select to_char(log_date,'mm/dd/yy hh24:mi:ss') logdate,
       extract_value (connect_data,'HOST')    host,
       extract_value (connect_data,'USER')    l_user,
       extract_value (connect_data,'SERVICE') service,
       action                                 RC
from listener_log
where extract_value (connect_data, 'COMMAND') in
(
        'password',
        'rawmode',
        'displaymode',
        'trc_file',
        'trc_directory',
        'trc_level',
        'log_file',
        'log_directory',
        'log_status',
        'current_listener',
        'inbound_connect_timeout',
        'startup_waittime',
        'save_config_on_stop',
'start',
'stop',
'status',
        'services',
        'version',
        'reload',
        'save_config',
        'trace',
        'spawn',
        'change_password',
        'quit',
        'exit'
)

这返回类似如下所示的输出

LOGDATE              COMMAND         HOST       L_USER     SERVICE              RC
-------------------- --------------- ---------- ---------- -------------------- -----
10/02/05 02:57:36    stop            prlddb01   oraprld    LISTENER_PRLDDB01    0
10/02/05 04:47:03    stop            prlddb01   oraprld    listener_prlddb01    0
10/03/05 15:14:53    stop            prlddb01   oraprld    LISTENER_PRLDDB01    0
11/18/05 23:48:26    reload          prlddb01   oraprld    LISTENER_PRLDDB01    0

您可以看到,该输出显示了命令的日期和时间以及返回代码。 也可以修改此查询以只显示返回代码不为 0 的值。此外,还可以添加一个谓词以只显示某个日期之后的记录,以便只显示当天的尝试。 如果每天均运行此脚本,则只能看到当日的尝试。

上面只显示了无效口令的数据。 对于管理限制的监听器,该错误字符串只显示三个字段,因此表 LISTENER_LOG 的列具有不同的含义: 第二列显示用户发出的命令,第三列显示返回代码。

select
	log_date,
	connect_data	       command,
	protocol_data	       return_code
from listener_log
where connect_data in
(
        'password',
        'rawmode',
        'displaymode',
        'trc_file',
        'trc_directory',
        'trc_level',
        'log_file',
        'log_directory',
        'log_status',
        'current_listener',
        'inbound_connect_timeout',
        'startup_waittime',
        'save_config_on_stop',
'start',
'stop',
'status',
        'services',
        'version',
        'reload',
        'save_config',
        'trace',
        'spawn',
        'change_password',
        'quit',
        'exit'
)
/

这返回:

LOG_DATE  COMMAND              RETURN_CODE
--------- -------------------- ---------------
06-NOV-05 change_password      0
06-NOV-05 save_config          0
06-NOV-05 log_file             0
06-NOV-05 trc_level            12508
06-NOV-05 save_config_on_stop  12508
06-NOV-05 log_directory        12508
06-NOV-05 log_directory        12508
06-NOV-05 stop                 1169
06-NOV-05 stop                 1169
06-NOV-05 services             1169
06-NOV-05 status               1169
06-NOV-05 reload               1169
06-NOV-05 status               1169
06-NOV-05 stop                 1169
06-NOV-05 status               1169
06-NOV-05 stop                 1169

可能的影响
无;该活动只是一个诊断活动。

(编辑:aniston)

  推荐精品文章

·2024年12月目录 
·2024年11月目录 
·2024年10月目录 
·2024年9月目录 
·2024年8月目录 
·2024年7月目录 
·2024年6月目录 
·2024年5月目录 
·2024年4月目录 
·2024年3月目录 
·2024年2月目录 
·2024年1月目录
·2023年12月目录
·2023年11月目录

  联系方式
TEL:010-82561037
Fax: 010-82561614
QQ: 100164630
Mail:gaojian@comprg.com.cn

  友情链接
 
Copyright 2001-2010, www.comprg.com.cn, All Rights Reserved
京ICP备14022230号-1,电话/传真:010-82561037 82561614 ,Mail:gaojian@comprg.com.cn
地址:北京市海淀区远大路20号宝蓝大厦E座704,邮编:100089