欢迎转载,转载请标明出处:http://blog.csdn.net/notbaron/article/details/50366032
1未公开的Oracle数据库秘密笔记——参数说明——AUDIT_SYSLOG_LEVEL
Oracle数据库管理系统有无数可以转向的旋钮和开合的开关。应该没有一个DBA能够记全的,就算核心开发人员,应该也是难以做到的吧?
每个版本的参数可以参看:Reference.pdf文件
AUDIT_SYSLOG_LEVEL与数据库安全相关。
设置语法如下:
AUDIT_SYSLOG_LEVEL = 'facility_clause.priority_clause'
facility_clause::=
{USER | LOCAL[0 | 1 | 2 | 3 | 4 | 5 | 6 | 7] | SYSLOG |
DAEMON | KERN | MAIL | AUTH | LPR | NEWS | UUCP | CRON }
priority_clause::=
{NOTICE | INFO | DEBUG | WARNING | ERR | CRIT | ALERT |
EMERG }
可以设置成:
AUDIT_SYSLOG_LEVEL ='KERN.EMERG';
AUDIT_SYSLOG_LEVEL = 'LOCAL1.WARNING';
默认是不进行设置的。
(12C中设置已经不再有作用了,迁移到统一审计)
该参数允许SYS和标准OS审计写到系统审计日志中的记录。
如果使用该参数,最好在syslog.conf中指定一个对应的文件。
通常会指定到串口,这样不会太麻烦;如果设置最好设置syslog消息的最大长度。
如果AUDIT_SYSLOG_LEVEL被设置,AUDIT_SYS_OPERATIONS=TRUE,那么SYS会审计写到系统审计日志的记录。
如果AUDIT_SYSLOG_LEVEL被设置,AUDIT_TRAIL=OS,那么标准审计记录会被写到系统审计日志。
在CDB中,这个参数只在CDB范围有效。在PDB中不能进行设置。
Oracle可以使用syslog设备写入审计跟踪。包括一个名为syslogd的守护进程,接受来自使用syslog C语言库函数的应用程序的日志信息。
日志信息一般位于/var/log中。
使用SYSDBA后者SYSOPER特权对ORACLE实例进行CONNECT,STARTUP操作时候,都将会被无条件地审计,记录到$ORACLE_HOME/rdbms/audit以.aud作为扩展名的文件或者明确指定参数AUDIT_FILE_DEST目录中。
(9i 版本开始设置AUDIT_SYS_OPERATIONS来审计除了使用SYSDBA或者SYSOPER特权的一些操作,默认为TRUE)
当AUDIT_SYSLOG_LEVEL和AUDIT_SYS_OPERATIONS结合时,执行任务的SQL和PL/SQL都将会使用syslog设备对其进行审计。
查看/var/log/message文件,例如:#tail –f/var/log/message
然后连接数据 #sqlplus/ as sysdba
可以发现在操作系统中会有AUDIT记录。
Dec 19 17:39:23 OEL journal: OracleAudit[7588]: LENGTH : '159' ACTION :[7] 'CONNECT' DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/1'STATUS:[1] '0' DBID:[10] '1419140026'
Dec 19 17:39:23 OEL journal: OracleAudit[7588]: LENGTH : '158' ACTION :[6] 'COMMIT' DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/1'STATUS:[1] '0' DBID:[10] '1419140026'
Dec 19 17:39:23 OEL journal: OracleAudit[7588]: LENGTH : '158' ACTION :[6] 'COMMIT' DATABASE USER:[1] '/'PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle' CLIENT TERMINAL:[5] 'pts/1'STATUS:[1] '0' DBID:[10] '1419140026'
Dec 19 17:39:23 OEL journal: OracleAudit[7588]: LENGTH : '192' ACTION :[39] 'BEGIN DBMS_OUTPUT.ENABLE(1000000);END;' DATABASE USER:[1] '/' PRIVILEGE :[6] 'SYSDBA' CLIENT USER:[6] 'oracle'CLIENT TERMINAL:[5] 'pts/1' STATUS:[1] '0' DBID:[10] '1419140026'
可以设置AUDIT_TRAIL=OS来审计有关非特权用户的记录到系统日志中去。
AUDIT_TRAIL=DB(默认)在数据库中保留非特权用户的审计跟踪。审计跟踪会写入数据表SYS.AUD$。