1、关于oracle的审计

by session对每个session中发生的重复操作只记录一次
by access对每个session中发生的每次操作都记录,而不管是否重复都记录
数据库初始化参数文件中AUDIT_TRAIL=OS时,审计记录存在操作系统的文件中,AUDIT_TRAIL=DB时,审计记录存在数据库中。[@more@]

作为DBA应该知道有那些用户或那些操作是影响数据库安全性,要知道这些起码要查看某一段时间数据库的所有操作,然后分析这些操作有那些是有隐患的、危险的,要达到这个目的必须应用数据库审计功能

....................


数据库审计可以记录对数据库对象的所有操作,什么时候、什么用户对什么对象进行了什么类型的操作。但8i之前AUDIT是无法知道用户是用什么SQL去操作对象,不过10g开始可以看到具体的SQL语句

1、启动数据库审计功能
要启动数据库的审计功能,必须设置初始化参数audit_trial=TRUE/DB/OS,设置好参数后,要重启数据库才能使审计生效
--TRUE/DB表示审计的信息保存在数据库SYS.AUD$表中
--OS表示审计信息保存在操作系统由audit_file_dest参数指定的路径中

2、开始某些权限审计
审计可以按by session或by access来记录,也可以按whenever successful或whenever not successful来记录
--by session对每个session中发生的重复操作只记录一次
--by access对每个session中发生的每次操作都记录,而不管是否重复都记录
--whenever successful表示操作成功以后才记录下来
--whenever not successful表示操作失败后才记录下来

例:

--审计AP用户的AP_INVOICES_ALL表上的所有的UPDATE、INSERT语句
audit update,insert on ap.ap_invoices_all

--审计AP用户的AP_INVOICES_ALL表上的UPDATE、INSERT语句,只记录成功的
audit update,insert on ap.ap_invoices_all whenever successful

--审计AP用户的AP_INVOICES_ALL表上的UPDATE、INSERT语句,只记录不成功的
audit update,insert on ap.ap_invoices_all whenever not successful

--审计用delete any table进行的操作
audit delete any table by access

--审计用delete any table进行的操作,每个SESSION对同一个表的操作只记录一次
audit delete any table by session

--审计数据库的每个成功/不成功的连接/断开
audit session

--审计scott和dbsnmp用户的数据库连接/断开
audit session by scott,dbsnmp

--审计执行select table,insert table,delete table,execute procedure不成功的操作
audit select table,insert table,delete table,execute procedure
by access
whenever not successful


3、查看/清除审计信息
如果audit_trial=DB,审计信息是保存sys.aud$表中的,用下面SQL查看审计信息
select *from sys.aud$
select *from dba_audit_trail
这时候如果想清除审计信息,可以直接删除sys.aud$表的记录就行了
truncate table sys.aud$

4、取消某些权限审计
如果不想再审计某个操作,可以用NOAUDIT来取消它,对应第2步的AUDIT,取消某个审计后,以后这个操作就不会审计记录下来,但其他的未被取消的操作,还是会被记录的。NOAUDIT取消审计是针对某个操作;关闭数据库审计是针对整个数据库,两者不一样
例:
--取消在AP用户的AP_INVOICES_ALL表上的UPDATE、INSERT语句的审计
noaudit update,insert on ap.ap_invoices_all

--取消对AP用户的AP_INVOICES_ALL表的审计
noaudit all on ap.ap_invocies_all

--取消用户scott和dbsnmp的数据库连接/断开审计
noaudit session by scott,dbsnmp

--取消DELETE ANY TABLE操作的审计
noaudit delete any table

--取消SELECT/INSERT/DELETE TABLE,EXECUTE PROCEDURE操作的审计
noaudit select table,insert table,delete table,execute procedure

--取消所有声明的审计
noaudit all

--取消所有系统权限的审计
noaudit all privileges

5、关闭数据库审计功能

设置初始化参数audit_trial=false或从初始化文件中去掉audit_trial参数就行了

参考链接http://oraclesvca2.oracle.com/docs/cd/A87860_01/
doc/server.817/a76956/audit.htm

里面有这样一段话描述ORACLE审计可以分三层
-----------
Oracle allows you to set audit options at three levels:

Statement
Audits on the type of SQL statement used, such as any SQL statement on a table (which records each CREATE,

TRUNCATE, and DROP TABLE statement)

Privilege
Audits use of a particular system privilege, such as CREATE TABLE

Object
Audits specific statements on specific objects, such as ALTER TABLE on the EMP table
-----------
这三层审计分别对应的视图是
dba_stmt_audit_opts
dba_priv_audit_opts
dba_obj_audit_opts

其他相关数据字典有
sys.aud$
dba_audit_exists
dba_audit_object
dba_audit_session
dba_audit_statement
dba_audit_trail

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/248644/viewspace-929362/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/248644/viewspace-929362/

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值