[20120810]linux使用syslog审计数据库.txt

[20120810]linux使用syslog审计数据库.txt

linux下使用syslog记录系统的日志,是否可以使用它来记录oracle的一些日志呢?
今天看了一些文档,尝试看看.

SQL> select * from v$version ;
BANNER
--------------------------------------------------------------------------------
Oracle Database 11g Enterprise Edition Release 11.2.0.1.0 - 64bit Production
PL/SQL Release 11.2.0.1.0 - Production
CORE    11.2.0.1.0      Production
TNS for Linux: Version 11.2.0.1.0 - Production
NLSRTL Version 11.2.0.1.0 - Production
SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------------------------------------
audit_file_dest                      string      /u01/app/oracle11g/admin/test/adump
audit_sys_operations                 boolean     FALSE
audit_syslog_level                   string
audit_trail                          string      DB

--要使用OS audit必须设置audit_sys_operations=true.
--audit_syslog_level级别我选择:LOCAL1.WARNING.

alter system set audit_sys_operations=true scope=spfile;
alter system set audit_syslog_level='LOCAL1.WARNING' scope=spfile;
SQL> alter system set audit_syslog_level='LOCAL1.WARNING' scope=both ;
alter system set audit_syslog_level='LOCAL1.WARNING' scope=both
                 *
ERROR at line 1:
ORA-02095: specified initialization parameter cannot be modified

--不支持scope=both,后面要重启oracle数据库!

2.修改服务器配置:

# touch /var/log/oracle_audit.log 
modify /etc/syslog.conf,append :
# vi /etc/syslog.conf
local1.warning /var/log/oracle_audit.log
# restar syslog server:
service syslog restart

3.重启数据库看看.
以sys用户执行如下:

SQL> show parameter audit
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------------------------------------
audit_file_dest                      string      /u01/app/oracle11g/admin/test/adump
audit_sys_operations                 boolean     TRUE
audit_syslog_level                   string      LOCAL1.WARNING
audit_trail                          string      DB
SQL> select * from scott.dept;
    DEPTNO DNAME          LOC
---------- -------------- -------------
        10 ACCOUNTING     NEW YORK
        20 RESEARCH       DALLAS
        30 SALES          CHICAGO
        40 OPERATIONS     BOSTON

--查看/var/log/oracle_audit.log文件,发现如下:

Aug 10 17:35:04 XXX Oracle Audit[26274]: LENGTH : '446' ACTION :[289] 'SELECT NAME NAME_COL_PLUS_SHOW_PARAM,DECODE(TYPE,1,'boolean',2,'string',3,'integer',4,'file',5,'number', 6,'big integer', 'unknown') TYPE,DISPLAY_VALUE VALUE_COL_PLUS_SHOW_PARAM FROM V$PARAMETER WHERE UPPER(NAME) LIKE UPPER(:NMBIND_SHOW_OBJ) ORDER BY NAME_COL_PLUS_SHOW_PARAM, ROWNUM' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[9] 'oracle11g' CLIENT TERMINAL:[5] 'pts/2' STATUS:[1] '0' DBID:[10] '2071943378'
Aug 10 17:35:22 XXX Oracle Audit[26274]: LENGTH : '180' ACTION :[24] 'select * from scott.dept' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[9] 'oracle11g' CLIENT TERMINAL:[5] 'pts/2' STATUS:[1] '0' DBID:[10] '2071943378'

--使用sed格式化看看,这样好看一些.

# grep scott /var/log/oracle_audit.log | tail -1 | sed -e "s/' /'\n/g"
Aug 10 17:39:18 hisdg Oracle Audit[26539]: LENGTH : '180'
ACTION :[24] 'select * from scott.dept'
DATABASE USER:[1] '/'
PRIVILEGE :[6] 'SYSDBA'
CLIENT USER:[9] 'oracle11g'
CLIENT TERMINAL:[5] 'pts/2'
STATUS:[1] '0'
DBID:[10] '2071943378'

--注意一下,如果经常使用sys用户登录,日志文件会增加很快,要仔细权衡利弊!

时间: 2024-10-03 09:04:53

[20120810]linux使用syslog审计数据库.txt的相关文章

[20151212]审计统计分析.txt

[20151212]审计统计分析.txt --昨天看了一个帖子,连接如下: http://www.itpub.net/thread-2048266-1-1.html --对方在脚本有如下语句:    EXECUTE IMMEDIATE          'begin dbms_stats.set_index_stats(ownname  => '''       || SOWNER       || ''',indname  => '''       || SIDXNAME       ||

[20171101]linux peekfd的简单使用.txt

[20171101]linux peekfd的简单使用.txt --//今天再解决一个问题时需要使用fuser命令,看看某个文件是那些进程打开,在执行时发现普通用户无法执行,我记忆里普通用户可以执 --//行的,我看了一台CentOS release 6.2 (Final)的机器,可以正常执行,我还发现在这台机器的/etc/peofile路径中包含如下脚本: # Path manipulation if [ "$EUID" = "0" ]; then     pat

[20170111]设置无需口令登录数据库.txt

[20170111]设置无需口令登录数据库.txt --以前链接提到的http://blog.itpub.net/267265/viewspace-2124815/,必须考虑一种方式登录避免口令的暴露. --想到设置Oracle Wallets,自己从来没有做过,测试看看. 1.环境: SCOTT@book> @ &r/ver1 PORT_STRING                    VERSION        BANNER -----------------------------

[20170301]Linux下删除怪异文件名.txt

[20170301]Linux下删除怪异文件名.txt --//这几天一直在测试数据库在线日志损坏,使用备库备用日志的修复试验. --//在测试中不知道为什么在自己的机器中产生许多怪异的文件,主要是文件名怪. --//估计是copy & paste 惹得祸,人在疲惫的情况下很容易犯低级错误.^_^ --//我当时采取方法把正常的文件移动别的目录,然后再删除整个目录的方法,有空测试一下这些文件如何删除. 1.建立测试环境: $ touch ^G $ touch ^V^V $ touch a $ t

[20150930]linux ln建立硬连接.txt

[20150930]linux ln建立硬连接.txt --前几天同事在建立测试环境时磁盘空间不足,而另外一个空间磁盘空间充足,我说可以通过ln建立软连接来解决这个问题. --这让我想起我以前管理数据库通过ln建立硬连接来避免oracle数据文件的删除,虽然现在我现在不用这种方式,不过还是做一些简单介 --绍. 1.关于linux的ln命令我不做介绍,自己看看手册. --仅仅说明一点,做硬链接不能跨文件系统. 2.实际上很简单,我拿测试环境做一次. RMAN> report schema; us

[20130727]linux下使用taskset命令.txt

[20130727]linux下使用taskset命令.txt # rpm -qilf `which taskset`Name        : schedutils                   Relocations: (not relocatable)Version     : 1.4.0                             Vendor: Red Hat, Inc.Release     : 2                             Build

[20130218]快速安装oracle数据库.txt

[20130218]快速安装oracle数据库.txt 快速安装windows的例子:(windows的环境没有测试过) windows下执行:dbca -Silent  -createDatabase -gdbName test -templateName %oracle_home%\assistants\dbca\templates\General_Purpose.dbc -characterSet ZHS16GBK  -nationalCharacterSet AL16UTF16 -dat

linux中更改MySQL数据库存储路径和端口

linux中更改MySQL数据库存储路径和端口 假设我们以更改到/opt/data目录下为倒: 1.opt目录下建立data目录 mkdir /opt/data 2.停掉MySQL服务进程 mysqladmin -u root -p shutdown 3.把/var/lib/mysql整个目录移到/opt/data mv /var/lib/mysql /opt/data/ 这样就把MySQL的数据文档移动到了/opt/data/mysql下 . 4.my.cnf文档配置 默认安装时my.cnf在

Linux下安装MariaDB数据库问题及解决方法(二进制版本的安装)_Linux

MariaDB数据库 分为源代码版本和二进制版本,源代码版本需要cmake编译,这里是二进制版本的安装 # tar zxvf mariadb-5.5.31-linux-x86_64.tar.gz # mv mariadb-5.5.31-linux-x86_64 /usr/local/MySQL (必需这样,很多脚本或可执行程序都会直接访问这个目录) # groupadd mysql 增加 mysql 属组 # useradd -g mysql mysql 增加 mysql 用户 并归于mysql