文档介绍:Oracle 10g管理及应用
第十章审计与优化
11 十一月 2017
Oracle 10g管理及应用
第十章审计与优化
审计
优化
实训8 审计与优化
11 十一月 2017
Oracle 10g管理及应用
审计
准备审计
登录审计
操作审计
对象审计
11 十一月 2017
Oracle 10g管理及应用
审计
Oracle能够对数据库里发生的一切进行审计。审计的记录可以记录到操作系中,$表中。利用审计信息,可以审查可疑的数据库活动,发现非法操作。
Oracle中值得审计的操作行为主要有三大类:登录尝试、对象存取以及数据库动作。在默认设置中,Oracle审计功能激活后,Oracle的审计功能把成功和不成功的命令都记录,但实际应用中,常常不需要对两种行为都进行跟踪。
11 十一月 2017
Oracle 10g管理及应用
准备审计
由于在默认情况下,Oracle系统关闭了审计功能,所以在审计前必须先激活审计功能,为进行审计做好准备。
由于部分对象或动作被审计后,可能将影响Oracle系统的性能,同时由于审计日志的迅速增大,将占用许多的存储空间,所以在开始审计前,必须先对被审计的内容进行设计和规划。
要想激活数据库的审计功能,需要在这个数据库的初始化参数文件中设置audit_trail参数的值:
参数值
说明
none
禁用审计功能
false
禁用审计功能
true
激活审计功能,$表中
db
激活审计功能,$表中
db_extended
激活审计功能,$表中
os
激活审计功能,审计记录将写到操作系统的审计跟踪中
11 十一月 2017
Oracle 10g管理及应用
登录审计
数据库攻击者往往采用猜测口令的方法来尝试登录到各种账户上,为了提高数据库的安全性,可以对数据库的每一次登录尝试都进行审计。
审计的语法格式如下所示:
AUDIT {语句选项| 对象选项}
[BY SESSION | ACCESS]
[WHENEVER [NOT] ESSFUL]
开始审计所有的登录尝试:
AUDIT SESSION;
关闭审计功能的指令为:
NOAUDIT SESSION;
值
说明
0
本次登录成功
1005
登录尝试失败,登录者输入了一个用户名但没有输入密码
1017
登录尝试失败,登录者输入了一个错误的密码
11 十一月 2017
Oracle 10g管理及应用
操作审计
对影响数据库的对象(表、表空间、同义词、回退段、用户等)的操作也可以进行审计。
系统级命令也是可以审计的操作,但为这些命令的数量比较多,所以把多个命令组合在一组进行审计可以减少审计记录的数量、减少需要设置的审计参数、简化审计工作的管理负担。
审计影响到角色的一切命令:
AUDIT ROLE;
结束影响到角色的审计:
NOAUDIT ROLE;
演示 DBA_AUDIT_OBJECT视图查询操作行为对数据库对象所产生的影响
11 十一月 2017
Oracle 10g管理及应用
对象审计
Oracle不仅能对数据库对象上的系统级操作行为进行审计,还可以对数据库对象上的数据操作行为进行审计。数据操作行为主要指对表的SELECT、INSERT、UPDATE和DELETE操作。
对用户scott和systerm查询表和更新表的操作进行审计:
AUDIT SELECT TABLE, UPDATE TABLE BY SCOTT, SYSTERM;
对表中的删除操作进行审计:
AUDIT DELETE ANY TABLE;
对数据库中新建对象的ALTER、GRANT、INSERT、UPDATE和DELETE操作停止审计的命令为:
NOAUDIT ALTER, GRANT, INSERT, UPDATE, DELETE ON DEFAULT;
$表中的审计记录可以使用以下指令:
AUDIT ALL ON $ BY ACCESS;
11 十一月 2017
Oracle 10g管理及应用
对象审计
对象
操作
表
视图
序列
过程/函数/包
ALTER
√
√
AUDIT
√
√
√
√
SELECT
√
√
DELETE
√
√
UPDATE
√
√
INSERT
√
√