杭州网站运营十年乐云seo,中国商标网官网首页,crm客户管理系统模板,国外做任务网站有哪些文章目录 开启数据库审计#xff08;db,extended级别或os级别#xff09;#xff0c;并将审计文件存放到/home/oracle/audit下一. 简介二. 配置2.1. 审计是否安装2.2. 审计表空间迁移2.3. 审计参数2.4. 审计级别2.5. 其他审计选项2.6. 审计相关视图 三. 使用3.1. 开启/关闭审… 文章目录 开启数据库审计db,extended级别或os级别并将审计文件存放到/home/oracle/audit下一. 简介二. 配置2.1. 审计是否安装2.2. 审计表空间迁移2.3. 审计参数2.4. 审计级别2.5. 其他审计选项2.6. 审计相关视图 三. 使用3.1. 开启/关闭审计3.2. 表操作审计 四.更改审计文件目录4.1.查看审计文件的配置路径4.2.更改配置路径4.3.重启数据库后查看路径已变成/home/oracle/audit 开启数据库审计db,extended级别或os级别并将审计文件存放到/home/oracle/audit下
一. 简介
审计(Audit)用于监视用户所执行的数据库操作审计记录可存在数据字典表(称为审计记录:存储在system表空间中的 SYS.AUD 表中可通过视图 d b a a u d i t t r a i l 查看 ) 或操作系统审计记录中 ( 默认位置为 表中可通过视图dba_audit_trail查看)或操作系统审计记录中(默认位置为 表中可通过视图dbaaudittrail查看)或操作系统审计记录中(默认位置为ORACLE_BASE/admin/$ORACLE_SID/adump/).。默认情况下审计是没有开启的。
审计记录包含有审计的操作、用户执行的操作、操作的日期和时间等信息。
不管你是否打开数据库的审计功能以下这些操作系统会强制记录用管理员权限连接Instance启动数据库关闭数据库。
二. 配置
2.1. 审计是否安装
SQL connect / AS SYSDBASQL select * from sys.aud$; --没有记录返回SQL select * from dba_audit_trail; - 没有记录返回如果做上述查询的时候发现表不存在说明审计相关的表还没有安装需要安装 安装后要重启数据库
SQL connect / as sysdbaSQL $ORACLE_HOME/rdbms/admin/cataudit.sql2.2. 审计表空间迁移
审计表默认安装在SYSTEM表空间。可以将相关表迁移到其他表空间
SQLconnect / as sysdba;SQL alter table aud$ move tablespace new_tablespace;SQL alter index I_aud1 rebuild online tablespace new_tablespace;SQL alter table audit$ move tablespace new_tablespace;SQL alter index i_audit rebuild online tablespace new_tablespace;SQL alter table audit_actions move tablespace new_tablespace;SQL alter index i_audit_actions rebuild online tablespace new_tablespace;2.3. 审计参数 Audit_sys_operations是否对sysdba用户做审计 关于sysdba用户审计的结果,linux存放在audit_file_dest参数指定位置的aud文件中windows存放在事件查看器的系统日志中 Audit_trailNone是默认值不做审计 DB将audit trail 记录在数据库的审计相关表中如aud$审计的结果只有连接信息 DB,Extended这样审计结果里面除了连接信息还包含了当时执行的具体语句 OS将audit trail 记录在操作系统文件中文件名由audit_file_dest参数指定 XML10g里新增的。 注这两个参数是static参数需要重新启动数据库才能生效。 2.4. 审计级别
当开启审计功能后可在三个级别对数据库进行审计Statement(语句)、Privilege(权限)、object(对象)。 Statement 按语句来审计比如audit table 会审计数据库中所有的create table,drop table,truncate table语句alter session by cmy会审计cmy用户所有的数据库连接。 Privilege 按权限来审计当用户使用了该权限则被审计如执行grant select any table to a当执行了audit select any table语句后当用户a 访问了用户b的表时(如select * from b.t)会用到select any table权限故会被审计。注意用户是自己表的所有者所以用户访问自己的表不会被审计。 Object 按对象审计只审计on关键字指定对象的相关操作如aduit alter,delete,drop,insert on cmy.t by scott; 这里会对cmy用户的t表进行审计但同时使用了by子句所以只会对scott用户发起的操作进行审计。
注意Oracle没有提供对schema中所有对象的审计功能只能一个一个对象审计对于后面创建的对象Oracle则提供on default子句来实现自动审计比如执行audit drop on default by access;后 对于随后创建的对象的drop操作都会审计。但这个default会对之后创建的所有数据库对象有效似乎没办法指定只对某个用户创建的对象有效想比trigger可以对schema的DDL进行“审计”这个功能稍显不足。
2.5. 其他审计选项
by access 每一个被审计的操作都会生成一条audit trail。
by session 一个会话里面同类型的操作只会生成一条audit trail默认为by session。
whenever successful 操作成功(dba_audit_trail中returncode字段为0) 才审计,
whenever not successful 反之。省略该子句的话不管操作成功与否都会审计。
2.6. 审计相关视图
dba_audit_trail保存所有的audit trail实际上它只是一个基于aud$的视图。其它的视图dba_audit_session,dba_audit_object, dba_audit_statement都只是dba_audit_trail的一个子集。
dba_stmt_audit_opts可以用来查看statement审计级别的audit options即数据库设置过哪些statement级别的审计。dba_obj_audit_opts,dba_priv_audit_opts视图功能与之类似
all_def_audit_opts用来查看数据库用on default子句设置了哪些默认对象审计。
三. 使用
3.1. 开启/关闭审计
开启审计
alter system set audit_sys_operationsTRUE scopespfile;
alter system set audit_traildb,extended scopespfile;关闭审计
alter system set audit_trailnone;3.2. 表操作审计
设置审计内容
audit all by lyj by access;audit select table, update table, insert table, delete table by lyj by access;audit execute procedure by lyj by access;AUDIT DELETE ANY TABLE; --审计删除表的操作AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL; --只审计删除失败的情况AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL; --只审计删除成功的情况AUDIT DELETE,UPDATE,INSERT ON user.table by SYSTEM; --审计SYSTEM用户对表user.table的delete,update,insert操作//如果在命令后面添加by user则只对user的操作进行审计,如果省去by用户,则对系统中所有的用户进行审计(不包含sys用户).noaudit all on t_test; 撤销审计truncate table aud$; 清空审计表内容四.更改审计文件目录
4.1.查看审计文件的配置路径 4.2.更改配置路径
SQL alter system set audit_file_desthome/oracle/audit scopespfile;修改完查看文件还是之前的路径需要先重启数据库
4.3.重启数据库后查看路径已变成/home/oracle/audit