ORACLE 数据库审计详解
发表于:2025-02-01 作者:千家信息网编辑
千家信息网最后更新 2025年02月01日,http://guestart.blog.51cto.com/1510660/1896340http://www.itpub.net/thread-454252-1-1.htmlhttps://yq.
千家信息网最后更新 2025年02月01日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安全错误
数据库的锁怎样保障安全
网络安全作文400字
传奇世界db数据库是随机的吗
数据库将时间字段减8小时
资阳网络技术产品介绍
网络安全防护一体化
数据库oracle怎么买
昆山哪里有软件开发
mysql两台服务器
树形数据存储数据库
百度的网络安全工程师
阿里云服务器8080
创建数据库怎么命名
域控服务器维修
网络安全攻防培训讲话
为什么电视剧会出现服务器中断
汉威电子软件开发
兵团网络安全技能比赛
linux命令清理服务器缓存
软件开发国企好还是外企好
有软件开发公司
联通选号软件开发
寻宝服务器
芜湖聚恒网络技术有限公司
公共网络安全黑名单
数据库范式美学设计
进入游戏服务器看不到
mysql数据库技术定义
我的世界服务器刷op
服务器电脑怎样散热
软件开发公司的宣传手册