Oracle 审计参数AUDIT_SYSLOG_LEVEL介绍
文档中描述的审计参数AUDIT_SYSLOG_LEVEL比较模糊,仅有几处提及,且其实际功能要较文档描述的更强大。
数据库中由SYS用户或其他管理员用户所作的操作均可以被审计且记录到由root用户拥有的系统级日志中。这样就可以避免有人使用Oracle的OS账户修改普通审计日志删除相关操作信息。启用(AUDIT_TRAIL=OS)在Oracle审计目录中记录日志或启用 (AUDIT_TRAIL=DB)在数据库中记录审计信息都是不妥当的,显然DBA总是可以修改它们。通过UNIX系统级的日志组件来进行审计对防止黑客侵入和“内鬼“捣乱都很有效。
结合UNIX中的SYSLOG组件记录审计信息是Oracle 10g的一个新特性。该组件包括一个守护进程(daemon)名叫syslogd(你可以通过man syslogd查询其相关手册),该进程用以接受由应用程序调用syslog的C函数库所发送的日志信息。Syslogd服务(service)的配置文件一般是/etc/syslog.conf,日志信息一般被记录在/var/log或/var/adm视乎不同的UNIX发行版本。日志文件名由相关组件名,重要性和级别组成。在/etc/syslog.conf每条记录为特定的组件与重要性指定文件名。在该配置文件中加入记录:user.notice /var/log/oracle_dbms,并使syslogd进程重启,接下来修改Oracle 参数 AUDIT_SYSLOG_LEVEL=user.notice,则相关的审计记录将出现在文件/var/log/oracle_dbms中。
在UNIX系统上,以SYSDBA或SYSOPER权限进行的CONNECT,STARTUP与SHUTDOWN操作均会被无条件地记录到$ORACLE_HOME/rdbms/audit或AUDIT_FILE_DEST指定的目录中,并使用扩展名为.aud。 Oracle 9i以后版本中通过设置AUDIT_SYS_OPERATIONS=TURE可以记录不限于CONNECT,STARTUP,SHUTDOWN的以SYSDBA或SYSOPER进行的操作。
[caption id="attachment_126" align="alignnone" width="822" caption="windows Oracle audit"]
[/caption]
当AUDIT_SYSLOG_LEVEL参数与AUDIT_SYS_OPERATIONS参数被结合使用时,任何以SYS运行的SQL和PL/SQL均使用syslog组件被审计记录。 由于syslog所使用的文件是root用户拥有的,一般dba是不能获得root账号的,故dba无法修改相关文件。当然,这也预示当主机被侵入时,只要不是使用root账户,其相关的操作仍被记录。
在Windows平台上,AUDIT_SYSLOG_LEVEL参数和AUDIT_FILE_DEST参数没有作用,因为Windows使用事务记录服务(事务管理器)作为系统级审计。如同UNIX一样,CONNECT,STARTUP,SHUTDOWN 操作是无条件记录的。当设置AUDIT_SYS_OPERATIONS=TURE时,SYSDBA或SYSOPER的其他操作也被记录到事务管理器中,你可以通过 START > CONTROL PANEL > Administrative Tools > Event Viewer找到事务管理器。其中日志分类为应用程序(APPlication)来源(SOURCE)为oracle.ORACLE_SID形式。
以下为Oracle Database reference 10g Release 2手册中关于AUDIT_SYSLOG_LEVEL的解释
AUDIT_SYSLOG_LEVEL enables OS audit logs to be written to the system via the syslog utility, if the AUDIT_TRAIL parameter is set to OS. The value of facility can be any of following : USER,LOCAL-LOCAL7,SYSLOG,DAEMON,KERN,MAIL,AUTH,LRP,NEW,UUCP or CRON. The value of level can be any of following : NOTICE,INFO,DEBUG,WARNING,ERR,CIRT,ALERT,EMERG.
在Solaris10和 Red Hat Linux系统上的测试说明文档的解释是不准确的:
1. AUDIT_SYSLOG_LEVEL 独立于AUDIT_TRAIL, 当设置了AUDIT_SYSLOG_LEVEL而AUDIT_TRAIL为默认值 NONE时, CONNECT,STARTUP,与SHUTDOWN信息始终由SYSLOG记录。
2. 同时设置AUDIT_SYSLOG_LEVEL与AUDIT_SYS_OPERATIONS=TURE 会将SYSDBA 或SYSOPER权限执行的任何操作通过SYSLOG记录,即便AUDIT_TRAIL=NONE
3. 仅特定的组件与级别组合可正常使用。 不适用的组合会引起”ORA-32028:Syslog facility or level not recognized” 错误,可能导致数据库无法启动。
转载请注明源地址: www.youyus.com
![event-viewer windows Oracle audit](http://www.youyus.com/wp-content/uploads/2009/09/event-viewer.jpg)
posted on 2009-09-02 13:04 Oracle和MySQL 阅读(1640) 评论(0) 编辑 收藏 举报