当前位置: 首页>数据库>正文

mysql 审计日志开启会有多大 oracle数据库日志审计功能

审计
Oracle
数据库系统提供对其内部的活动进行审计的功能,简单来说,就是
Oracle
系统对任何用户所做的登录、操作数据库对象进行自动登记,以便使数据库管理者在事后进行监督和检查。
通常对以下
3
种情况进行审计:
设计类型
说明
登录审计
对每一个企图登录到
Oracle
的用户进行审计(无论其登录是否成功)
数据活动审计
对任何涉及数据库对象的活动都被审计,如连接
oracle
、建表、建立角色、建立表空间等都被审计
对象审计
任何用户对表的操作都可以进行审计,如对表
select,insert,update,delete
操作可被审计
审计环境设置
在默认情况下,系统为了节省资源、减少
I/O
操作,其数据库的审计功能是关闭的。若要启用审计功能,
Oracle
系统管理员要对审计有关的参数进行设置,将
Audit_trail
设置为
TRUE.
1
)
查看数据库审计参数
SQL> show parameters audit_trail
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_trail                          string      NONE
2)
修改audit_trail参数,为使生效,重启数据库。
SQL> alter system set audit_trail=DB,extended scope=spfile;
System altered
SQL> shutdown immediate
数据库已经关闭。
已经卸载数据库。
ORACLE
例程已经关闭。
SQL> startup
ORACLE
例程已经启动。
Total System Global Area  591396864 bytes
Fixed Size                  1250308 bytes
Variable Size             180358140 bytes
Database Buffers          402653184 bytes
Redo Buffers                7135232 bytes
数据库装载完毕。
数据库已经打开。
Settings for the AUDIT_TRAIL Initialization Parameter
说明:audit_trail = { none | os | db [,extended ] | xml [,extended ] }详细可以参考
none
:
默认值,不做审计
db
:
将audit trail记录在数据库的审计相关表中,如aud$
db,extended
: Behaves the same as
AUDIT_TRAIL=DB, but also populates
the SQL bind and SQL text CLOB-type columns
of the
SYS.AUD$
table
os
:
将oracle audit trail记录在操作系统文件中,文件名有audit_file_dest参数指定。对sys用户审计必须选OS
xml
:
Writes
to the operating system audit record file in XML format.
xml,extended:
Behaves the same
as
AUDIT_TRAIL=XML
, but also includes SQL text and SQL bind information in the operating system XML audit files.
一般情况下,Oracle 11g安装完毕后审计视图会自动建立。有些oracle版本可能没有建立这些视图。如果要建立相应的审计视图,以sysdba运行/oracle_home/rdbms/admin/cataudit.sql
SQL> start D:\oracle\product.2.0\db_1\RDBMS\ADMIN\cataudit.sql
Table dropped
Table created
Comment added
……
(
此处省略若干行)
Grant succeeded
Comment added
SQL>
运行完成毕后创建的对象
数据字典
说明
SIMT_AUDIT_OPTION_MAP
存放审计类型代码,如66表示insert table
AUDIT_ACTIONS
审计跟踪活动类型代码,可从类型号得到活动类型代码
ALL_DEF_AUDIT_OPTS
包含对象审计选项
DBA_SIMT_AUDIT_OPTS
描述通过系统并由用户审计的当前系统审计选项
USER_OBJ_AUDIT_OPTS
列出一个用户所有对象的审计选项
DBA_OBJ_AUDIT_OPTS
列出所有用户所有对象的审计选项
USER_AUDIT_TRAIL
与用户有关的审计跟踪条目
DBA_AUDIT_TRAIL
与所有用户有关的审计跟踪条目
USER_AUDIT_SESSION
系统中用户对象的审计跟踪记录
DBA_AUDIT_SESSION
系统中所有对象的审计跟踪记录
USER_AUDIT_STATEMENT
列出用户关于grant,revoke,audit,noaudit,alter system语句的审计跟踪信息
DBA_AUDIT_STATEMENT
列出所有用户grant,revoke,audit,noaudit,alter system语句的审计跟踪信息
USER_AUDIT_OBJECT
系统中用户对象的审计跟踪记录
DBA_AUDIT_OBJECT
系统中所有对象的审计跟踪记录
DBA_AUDIT_EXIST
列出audit not exists和audit exists产生的审计跟踪
V$XML_AUDIT_TRAIL
在Oracle 11g下,显示标准的精细审计并以XML写到操作系统路径下
如果不再需要审计,可运行/oracle_home/rdbms/admin/catnoaudit.sql脚本完成对审计视图的清除。但一般不建议这样做,一般建议如下:用sysdba执行alter system set audit_trail=FLASH scope=spfile,再重启实例即可,不必删除审计视图。
1
、登录审计
a)
设置登录审计
SQL> audit session;
审计已成功。//每一个与oracle连接的活动均需审计
SQL> audit session whenever successful;
审计已成功。//每一个与oracle连接成功的活动均需审计
SQL> audit session whenever not successfu
审计已成功。//每一个与oracle连接不成功的活动均需审计
SQL>
b)
查询审计信息
decode(returncode,'0','connected','1005','failed null','1017','failed',returncode) TYPE,
to_char(timestamp,'yyyy.mm.dd hh24:mi:ss')
登录时间,
to_char(logoff_time,'yyyy.mm.dd hh24:mi:ss')
退出时间
from dba_audit_session;
OS_USERNAME               USERNAME   TERMINA TYPE
登录时间退出时间
------------------------- ---------- ------- ---------- ------------------- -------------------
NT AUTHORITY\SYSTEM       DBSNMP     IBMT400 connected  2013.01.05 23:41:12 2013.01.05 23:41:11
IBMT400\FROG HONG         SCOTT      IBMT400 connected  2013.01.05 23:43:15 2013.01.05 23:43:17
IBMT400\FROG HONG         SCOTT      IBMT400 connected  2013.01.05 23:43:43
c)
取消登录审计
SQL> noaudit session;
Noaudit succeeded
2
、数据活动审计
进行create any table、drop any table、create any index, create procedure的操作进行审计
a)
语法
[no]audit { [,
…
] | [,
…
] } [ by [,
…
]] [by {session | access }] [whenever [not] successful];
system_priv:
表示oracle系统权限
by :
表示按照用户来登记
by session | access:
表示按照会话或访问来登记
whenever [not] successful:
表示成功与否
b)
设置使用数据活动的审计
SQL> audit delete any table by access whenever not successful;
Audit succeeded
SQL> audit execute any procedure whenever not successful;
Audit succeeded
c)
取消数据活动的审计
SQL> noaudit delete any table;
Noaudit succeeded
SQL> noaudit execute any procedure;
Noaudit succeeded
3
、对象审计
任何用户对表进行操作都可以进行审计,如对表select,insert,update,delete操作可被审计。
a)
语法
[no]audit { [,
…
] on { | default } [by {session | access }] [whenever [not]] successful];
其中:
object:
表示要审计的对象
by session | access:
表示按照会话或访问来登记,by session表示多次做同一操作只记录一次,如用户对emp表做了4次update,则只记录一次。by access表示每次操作均记录。
b)
设置对象emp表的审计
SQL> audit insert on scott.emp;       //
对emp表插入进行审计
Audit succeeded
SQL> audit all on scott.emp;        //
对emp表询、插入、修改、删除进行审计
Audit succeeded
SQL> audit delete on scott.emp by session;  //
连续对emp表进行删除多次只登记一次(按照会话登记)
Audit succeeded
c)
取消对象emp表的审计
SQL> noaudit insert on scott.emp;
Noaudit succeeded
SQL> noaudit all on scott.emp;
Noaudit succeeded
SQL> delete from sys.aud$ where obj$name='EMP';
0 rows deleted
SQL> truncate table sys.aud$;
Table truncated
5
、查询审计信息
SQL> select userid,userhost,terminal,obj$name,obj$creator,ses$actions from aud$;
审计是一把双刃剑,它能自动捕获很多信息,但是也会对系统性能和空间造成负面影响。

https://www.xamrdz.com/database/6t51942061.html

相关文章: