ORACLE 数据库审计详解
发表于:2025-11-08 作者:千家信息网编辑
千家信息网最后更新 2025年11月08日,http://guestart.blog.51cto.com/1510660/1896340http://www.itpub.net/thread-454252-1-1.htmlhttps://yq.
千家信息网最后更新 2025年11月08日ORACLE 数据库审计详解
2)·数据库用户名
3)·连接会话标识
4)·终端标识
5)·被访问的schema对象名
6)·尝试的操作
7)·操作的完整代码
8)·日期和时间戳
若审计记录存储在外部操作文件中,则该文件可能包含以下信息: 1)·操作系统产生的审计记录
2)·数据库的审计记录
3)·被审计到的数据库操作
4)·超级管理员(SYS)的审计记录
其中,被写到文件中的审计记录是以编码的方式存储的,如果要理解这些编码所对应的信息,可以查询以下数据字典表: 编码信息数据字典表 ------------------------------- 数据库操作代码表示尝试的操作。它的相关描述可以从数据字典表AUDIT_ACTIONS表中查询到 操作所使用的权限可以在字典表SYSTEM_PRIVILEGE_MAP中查询到对应的说明 完整的操作代码操作成功时将返回0,失败时返回相关oracle错误信息,错误信息码所对应的说明可以从oracle官方文档中获得 -------------------------------- 五、缺省的审计 不论当前是否已经开启的审计功能,数据库都会把一些数据库相关的操作写入外部审计文件中(注意:不是写入SYS.AUD$表),这些被缺省审计的操作是: 1)·以超级管理员权限对数据库的连接(connectASSYSDBA或connectASSYSOPER)
2)·数据库启动
3)·数据库停止
六、对超级管理员用户的操作行为的审计 超级管理员用户指的是以ASSYSDBA或ASSYSOPER方式连接数据库的用户。初始化参数AUDIT_SYS_OPERATIONS用来指定是超级管理员的审计选项,如果将AUDIT_SYS_OPERATIONS设置为TRUE,那么所有超级管理员的操作都将被审计,而不管当前是否有开启审计功能,而且所有的审计信息都被写入外部审计文件中(注意:不是写入SYS.AUD$表)。 七、执行审计 1.设定审计记录的存放位置 初始化参数AUDIT_TRAIL指定了审计记录的存放位置,该参数有三个取值: 1)·DB审计记录存放在数据库的SYS.AUD$表中
2)·OS审计记录存放在外部的操作系统文件中
3)·NONE关闭审计(缺省值)
初始化参数AUDIT_FILE_DEST指定了当审外部审记文件目标存储路径,其缺省值是$ORACLE_HOME/rdbms/audit
2.审计选项 这个审计选项指的是执行审计的AUDIT语句的可选项。AUDIT语句的语法请参考oracle官方SQL参考。 3.以实例说明审计 a.审计某用户的会话的创建与结束 AUDIT SESSION BY scott,fey;
b.审计所有用户的会话的创建与结束 AUDIT SESSION;
c.审计删除表的操作 AUDIT DELETE ANY TABLE;
d.审计删除表的操作(限制:只审计删除失败的情况) AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL;
e.审计删除表的操作(限制:只审计删除成功的情况) AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL;
f.审计删除表的操作(限制:同一个会话中相同的操作语句只审计一次) AUDIT DELETE ANY TABLE BY SESSION; (注:对于这种情况,如果审计记录被设定为存储在外部文件中时,这个效果是体现不出来的,因为oracle无法判断是否已经审计过相同的操作语句。)
g.审计删除表的操作(限制:每支删除语句都审计,不论同一会话中是否有多条相同的操作语句) AUDIT DELETE ANY TABLE BY ACCESS;
h.审计对fey.employee表的delete操作 AUDIT DELETE ON fey.employee;
i.审计对fey.employee表的delete、updet、insert操作 AUDIT DELETE,UPDATE,INSERT ON fey.employee; 八、停止审计 停止审计使用NOAUDIT语句,该语句的语法请参考oracle官方SQL参考。下面以实例说明NOAUDIT的使用: a.停止所有对会话的创建与结束的审计 NOAUDIT SESSION;
b.停止对用户fey,scott的会话的创建与结束的审计 NOAUDIT SESSION BY fey,scott;
c.停止审计删除表的操作 NOAUDIT DELETE ANY TABLE;
d.停止审计删除表的操作(限制:停止审计删除失败的情况) NOAUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL;
e.停止审计删除表的操作(限制:停止审计删除成功的情况) NOAUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL;
f.停止审计对fey.employee表的delete操作 NOAUDIT DELETE ON fey.employee;
g.停止审计对fey.employee表的delete、updet、insert操作 NOAUDIT DELETE,UPDATE,INSERT ON fey.employee; 九、对审计记录表SYS.AUD$的管理 当SYS.AUD$表的审计记录越来越多的时候,以至达到存储极限时,会因为审计记录无法写入而产生错误。或许我还也需要对该表的数据进行一些转储或者碎片的整理,或是删除一些我们认为不再需要的审计记录。这些都是要考虑的事情。下面给出一个对该表进行存储碎片的整理的一个方法:
a.将该表的数据select into到另一个表中,或利用export导出到外部文件
b.truncate这张表(要以超级管理员登录才行)
c.再将原先转储的数据再加载进来。 也许我们需要对针对SYS.AUD$表的操作进行审计,如:AUDIT INSERT,UPDATE,DELETE ON sys.aud$ BY ACCESS; 十、Fine-Grained审计 如前面所述,审计的记录中并没有含操作所作用的数据,比如说,需要审计针对一个表的select,而且需要在审计记录中包含select语句所返回的数据。这时,就需要用到Fine-Grained审计。Fine-Grained审计是基于oracle的事件,其原理是在insert,update或delete相关的事件中截取相关的数据。属于orale程序开发的范畴。具体可以参考相关oracle文檔。 十一、审计相关的数据字典视图 STMT_AUDIT_OPTION_MAP AUDIT_ACTIONS ALL_DEF_AUDIT_OPTS DBA_STMT_AUDIT_OPTS DBA_PRIV_AUDIT_OPTS DBA_OBJ_AUDIT_OPTS USER_OBJ_AUDIT_OPTS DBA_AUDIT_TRAIL USER_AUDIT_TRAIL DBA_AUDIT_OBJECT USER_AUDIT_OBJECT DBA_AUDIT_SESSION USER_AUDIT_SESSION DBA_AUDIT_STATEMENT USER_AUDIT_STATEMENT DBA_AUDIT_EXISTS DBA_AUDIT_POLICIES DBA_FGA_AUDIT_TRAIL
http://guestart.blog.51cto.com/1510660/1896340
http://www.itpub.net/thread-454252-1-1.html
https://yq.aliyun.com/articles/16914
2)·数据库用户名
3)·连接会话标识
4)·终端标识
5)·被访问的schema对象名
6)·尝试的操作
7)·操作的完整代码
8)·日期和时间戳
若审计记录存储在外部操作文件中,则该文件可能包含以下信息: 1)·操作系统产生的审计记录
2)·数据库的审计记录
3)·被审计到的数据库操作
4)·超级管理员(SYS)的审计记录
其中,被写到文件中的审计记录是以编码的方式存储的,如果要理解这些编码所对应的信息,可以查询以下数据字典表: 编码信息数据字典表 ------------------------------- 数据库操作代码表示尝试的操作。它的相关描述可以从数据字典表AUDIT_ACTIONS表中查询到 操作所使用的权限可以在字典表SYSTEM_PRIVILEGE_MAP中查询到对应的说明 完整的操作代码操作成功时将返回0,失败时返回相关oracle错误信息,错误信息码所对应的说明可以从oracle官方文档中获得 -------------------------------- 五、缺省的审计 不论当前是否已经开启的审计功能,数据库都会把一些数据库相关的操作写入外部审计文件中(注意:不是写入SYS.AUD$表),这些被缺省审计的操作是: 1)·以超级管理员权限对数据库的连接(connectASSYSDBA或connectASSYSOPER)
2)·数据库启动
3)·数据库停止
六、对超级管理员用户的操作行为的审计 超级管理员用户指的是以ASSYSDBA或ASSYSOPER方式连接数据库的用户。初始化参数AUDIT_SYS_OPERATIONS用来指定是超级管理员的审计选项,如果将AUDIT_SYS_OPERATIONS设置为TRUE,那么所有超级管理员的操作都将被审计,而不管当前是否有开启审计功能,而且所有的审计信息都被写入外部审计文件中(注意:不是写入SYS.AUD$表)。 七、执行审计 1.设定审计记录的存放位置 初始化参数AUDIT_TRAIL指定了审计记录的存放位置,该参数有三个取值: 1)·DB审计记录存放在数据库的SYS.AUD$表中
2)·OS审计记录存放在外部的操作系统文件中
3)·NONE关闭审计(缺省值)
初始化参数AUDIT_FILE_DEST指定了当审外部审记文件目标存储路径,其缺省值是$ORACLE_HOME/rdbms/audit
2.审计选项 这个审计选项指的是执行审计的AUDIT语句的可选项。AUDIT语句的语法请参考oracle官方SQL参考。 3.以实例说明审计 a.审计某用户的会话的创建与结束 AUDIT SESSION BY scott,fey;
b.审计所有用户的会话的创建与结束 AUDIT SESSION;
c.审计删除表的操作 AUDIT DELETE ANY TABLE;
d.审计删除表的操作(限制:只审计删除失败的情况) AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL;
e.审计删除表的操作(限制:只审计删除成功的情况) AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL;
f.审计删除表的操作(限制:同一个会话中相同的操作语句只审计一次) AUDIT DELETE ANY TABLE BY SESSION; (注:对于这种情况,如果审计记录被设定为存储在外部文件中时,这个效果是体现不出来的,因为oracle无法判断是否已经审计过相同的操作语句。)
g.审计删除表的操作(限制:每支删除语句都审计,不论同一会话中是否有多条相同的操作语句) AUDIT DELETE ANY TABLE BY ACCESS;
h.审计对fey.employee表的delete操作 AUDIT DELETE ON fey.employee;
i.审计对fey.employee表的delete、updet、insert操作 AUDIT DELETE,UPDATE,INSERT ON fey.employee; 八、停止审计 停止审计使用NOAUDIT语句,该语句的语法请参考oracle官方SQL参考。下面以实例说明NOAUDIT的使用: a.停止所有对会话的创建与结束的审计 NOAUDIT SESSION;
b.停止对用户fey,scott的会话的创建与结束的审计 NOAUDIT SESSION BY fey,scott;
c.停止审计删除表的操作 NOAUDIT DELETE ANY TABLE;
d.停止审计删除表的操作(限制:停止审计删除失败的情况) NOAUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL;
e.停止审计删除表的操作(限制:停止审计删除成功的情况) NOAUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL;
f.停止审计对fey.employee表的delete操作 NOAUDIT DELETE ON fey.employee;
g.停止审计对fey.employee表的delete、updet、insert操作 NOAUDIT DELETE,UPDATE,INSERT ON fey.employee; 九、对审计记录表SYS.AUD$的管理 当SYS.AUD$表的审计记录越来越多的时候,以至达到存储极限时,会因为审计记录无法写入而产生错误。或许我还也需要对该表的数据进行一些转储或者碎片的整理,或是删除一些我们认为不再需要的审计记录。这些都是要考虑的事情。下面给出一个对该表进行存储碎片的整理的一个方法:
a.将该表的数据select into到另一个表中,或利用export导出到外部文件
b.truncate这张表(要以超级管理员登录才行)
c.再将原先转储的数据再加载进来。 也许我们需要对针对SYS.AUD$表的操作进行审计,如:AUDIT INSERT,UPDATE,DELETE ON sys.aud$ BY ACCESS; 十、Fine-Grained审计 如前面所述,审计的记录中并没有含操作所作用的数据,比如说,需要审计针对一个表的select,而且需要在审计记录中包含select语句所返回的数据。这时,就需要用到Fine-Grained审计。Fine-Grained审计是基于oracle的事件,其原理是在insert,update或delete相关的事件中截取相关的数据。属于orale程序开发的范畴。具体可以参考相关oracle文檔。 十一、审计相关的数据字典视图 STMT_AUDIT_OPTION_MAP AUDIT_ACTIONS ALL_DEF_AUDIT_OPTS DBA_STMT_AUDIT_OPTS DBA_PRIV_AUDIT_OPTS DBA_OBJ_AUDIT_OPTS USER_OBJ_AUDIT_OPTS DBA_AUDIT_TRAIL USER_AUDIT_TRAIL DBA_AUDIT_OBJECT USER_AUDIT_OBJECT DBA_AUDIT_SESSION USER_AUDIT_SESSION DBA_AUDIT_STATEMENT USER_AUDIT_STATEMENT DBA_AUDIT_EXISTS DBA_AUDIT_POLICIES DBA_FGA_AUDIT_TRAIL
审计
数据
数据库
存储
文件
语句
信息
用户
管理
管理员
情况
限制
字典
参考
操作系统
参数
方式
系统
相同
成功
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
网络安全知识与技术考研
失落的方舟显示服务器验证失败Win10
对象数据库技术员
流媒体服务器管理系软件
金铲铲之战怎么看服务器排名
山西服务器电源种类
mysql嵌入式数据库
lol服务器崩溃登不上去
软件开发团队是什么意思
sql数据库面试题目
国家网络安全之中国方案
方舟手游单机版无法显示服务器
火影忍者手游哪个服务器好
word打印提示服务器脱机
镇江互联网科技有限公司
方舟手游能不能免费开服务器
腾讯云数据库mysql80正式上线
医院涉疫情网络安全自查报告
asp数据库下载
多服务器怎么发布代码
重庆智能养老软件开发系统
互联网科技普及
网络安全方面的通知
樊文飞 数据库产品
吱信网络技术
深入宣传网络安全法
山东pdu服务器电源工厂
安装网络安全装置的承诺书
nfc网络安全吗
ftp服务器段