![数据库审计全_第1页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/2fbdbeeb-714c-497d-a7db-0553360e5279/2fbdbeeb-714c-497d-a7db-0553360e52791.gif)
![数据库审计全_第2页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/2fbdbeeb-714c-497d-a7db-0553360e5279/2fbdbeeb-714c-497d-a7db-0553360e52792.gif)
![数据库审计全_第3页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/2fbdbeeb-714c-497d-a7db-0553360e5279/2fbdbeeb-714c-497d-a7db-0553360e52793.gif)
![数据库审计全_第4页](http://file3.renrendoc.com/fileroot_temp3/2021-12/15/2fbdbeeb-714c-497d-a7db-0553360e5279/2fbdbeeb-714c-497d-a7db-0553360e52794.gif)
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.数据库审计查看数据库审计是否打开SQL> show parameter audit;NAMETYPEVALUE- - -audit_file_deststring/oracle/app/oracle/admin/PTBCS/adumpaudit_sys_operationsbooleanFALSEaudit_syslog_levelstringaudit_trailstringDB_EXTENDEDaudit_sys_operations:默认为 false ,当设置为true时,所有 sys (包括以sysdba, sysopr 身份登录的用户)操作都会被记录,但记录不会被写在 au
2、d$表中。如果为 windows 平台,会记录在 windows 事件管理当中。audit_trail:none 为默认值, 11G 之后默认值为db,如果默认值为none,那么不做审计DB:将 audit trail记录在数据库审计相关的表中,审计只有连接信息DB_EXTENDED:这样审计还包含当时的执行的具体语句OS:将 audit trail记录在系统文件中,文件名有audit_file_dest参数指定修改语句为SQL> alter system set audit_trail='db_extended' scope=spfile;注:参数 audit_trai
3、l不是动态,为了使此参数中的改动生效,必须关闭数据库并重新启动。在对sys.aud$ 进行审计时,还需要监控该表的大小,以免影响system 表空间中其他对象的空间需求。推荐周期性归档sys.aud$ 中的行,并截取该表。目前采用计划任务,每日删除上月数据,只保留当月数据。Audit_file_dest:audit_trail=os时,文件位置。语句审计SQL> audit on table by access;每次动作发生时都对其进行审计SQL> audit on table by session;只审计一次 ,默认为 by session.有时希望审计成功的动作:没有生成错误消
4、息的语句。对于这些语句,添加wheneversuccessful 。而有时只关心使用审计语句的命令是否失败,失败原因是权限违犯、用完表空间中的空间还是语法错误。对于这些情况,使用whenever not successful。对于大多数类别的审计方法,如果确实希望审计所有类型的表访问或某个用户的任何权限,则可以指定all 而不是单个的语句类型或对象。SQL> audit alter system ;所有 ALTER SYSTEM 选项,例如,动态改变实例参数,切换到下一个日志文件组,以及终止用户会话SQL> audit cluster;CREATE、 ALTER、 DROP 或 T
5、RUNCATE 集群SQL> audit context;CREATE CONTEXT 或 DROP CONTEXT;SQL> audit database link;CREATE 或 DROP 数据库链接 ;SQL> audit dimension;CREATE、 ALTER 或 DROP 维数SQL> audit directory;CREATE 或 DROP 目录 ;SQL> audit index;CREATE、 ALTER 或 DROP 索引SQL> audit materialized view;CREATE、 ALTER 或 DROP 物化视图
6、SQL> audit not exists;由于不存在的引用对象而造成的SQL 语句的失败 ;SQL> audit procedure;CREATE 或 DROP FUNCTION 、LIBRARY 、 PACKAGE、 PACKAGE BODY 或 PROCEDURESQL> audit profile;CREATE、 ALTER 或 DROP 配置文件SQL> audit public database link;CREATE 或 DROP 公有数据库链接.SQL> audit public synonym;CREATE 或 DROP 公有同义词SQL>
7、 audit role;CREATE、 ALTER、 DROP 或 SET 角色SQL> audit rollback segment;CREATE、 ALTER 或 DROP 回滚段SQL> audit sequence;CREATE 或 DROP 序列SQL> audit session;登录和退出SQL> audit system audit;系统权限的AUDIT 或 NOAUDITSQL> audit system grant;GRANT 或 REVOKE 系统权限和角色SQL> audit table;CREATE、 DROP 或 TRUNCATE
8、 表SQL> audit tablespace;CREATE、 ALTER 或 DROP 表空间SQL> audit trigger;CREATE、 ALTER( 启用 / 禁用 ) 、 DROP 触发器;具有 ENABLE ALL TRIGGERS 或 DISABLE ALL TRIGGERS 的 ALTER TABLESQL> audit type;CREATE、 ALTER 和 DROP 类型以及类型主体SQL> audit user;CREATE、 ALTER 或 DROP 用户SQL> audit view;CREATE 或 DROP 视图.显式指定的语
9、句类型SQL> audit alter sequence;任何 ALTER SEQUENCE 命令SQL> audit alter table;任何 ALTER TABLE 命令SQL> audit comment table;添加注释到表、视图、物化视图或它们中的任何列SQL> audit delete table;删除表或视图中的行SQL> audit execute procedure;执行程序包中的过程、函数或任何变量或游标SQL> audit grant directory;GRANT 或 REVOKE DIRECTORY 对象上的权限SQL>
10、; audit grant procedure;GRANT 或 REVOKE 过程、函数或程序包上的权限SQL> audit grant sequence;GRANT 或 REVOKE 序列上的权限SQL> audit grant table;GRANT 或 REVOKE 表、视图或物化视图上的权限SQL> audit grant type;GRANT 或 REVOKE TYPE 上的权限SQL> audit insert table;INSERT INTO 表或视图SQL> audit lock table;表或视图上的LOCK TABLE 命令SQL>
11、audit select sequence;引用序列的CURRVAL 或 NEXTVAL 的任何命令SQL> audit select table;SELECT FROM 表、视图或物化视图SQL> audit update table;在表或视图上执行UPDATE.SQL> select username,to_char(timestamp,'MM/DD/YY HH24:MI') timestamp2 OBJ_NAME,ACTION_NAME,SQL_TEXT FROM DBA_AUDIT_TRAIL3 WHERE USERNAME = 'SCOTT
12、'我用的基本查询审计信息,显示结果如下scott08/12/07 17:15 JOB_TITLE_IDXCREATE INDEXcreate index hr.job_title_idx (job_title)1 row selected.权限审计审计系统权限具有与语句审计相同的基本语法,但审计系统权限是在sql_statement_clause中,而不是在语句中,指定系统权限。SQL> audit alter tablespace by access whenever successful;使用 SYSDBA 和 SYSOPER权限或者以SYS 用户连接到数据
13、库的系统管理员可以利用特殊的审计。为了启用这种额外的审计级别,可以设置初始参数AUDIT_SYS_OPERATIONS 为TRUE。这种审计记录发送到与操作系统审计记录相同的位置。因此,这个位置是和操作系统相关的。当使用其中一种权限时执行的所有SQL 语句,以及作为用户SYS 执行的任何SQL 语句,都会发送到操作系统审计位置。模式对象审计SQL> audit alter on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;改变表、序列或物化视图SQL> auditAUDIT on TEST_DR.TEST BY ACCESS WHENEVE
14、R SUCCESSFUL;审计任何对象上的命令SQL> auditCOMMENT on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;添加注释到表、视图或物化视图SQL> auditDELETE on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;从表、视图或物化视图中删除行SQL> auditEXECUTE on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;执行过程、函数或程序包.SQL> auditFLASHBACK on TEST_DR.TES
15、T BY ACCESS WHENEVER SUCCESSFUL;执行表或视图上的闪回操作SQL> auditGRANT on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;授予任何类型对象上的权限SQL> auditINDEX on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;创建表或物化视图上的索引SQL> auditINSERT on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;将行插入表、视图或物化视图中SQL> auditLOCK on T
16、EST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;锁定表、视图或物化视图SQL> auditREAD on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;对 DIRECTORY 对象的内容执行读操作SQL> auditRENAME on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;重命名表、视图或过程SQL> auditSELECT on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;从表、视图、序列或物化视图中选择行SQ
17、L> auditUPDATE on TEST_DR.TEST BY ACCESS WHENEVER SUCCESSFUL;更新表、视图或物化视图细粒度审计称为 FGA,审计变得更为关注某个方面,并且更为精确。由称为DBMS_FGA 的 PL/SQL 程序包实现FGA。使用标准的审计,可以轻松发现访问了哪些对象以及由谁访问,但无法知道访问了哪些行或列。细粒度的审计可解决这个问题,它不仅为需要访问的行指定谓词 (或 where 子句 ) ,还指定了表中访问的列。通过只在访问某些行和列时审计对表的访问,可以极大地减少审计表条目的数量。例如: 用户 TAMARA 通常每天访问HR.EMPLOYE
18、ES 表,查找雇员的电子邮件地址。系统管理员怀疑TAMARA 正在查看经理们的薪水信息,因此他们建立一个FGA 策略,用于审计任何经理对SALARY 列的任何访问:.begindbms_fga.add_policy(object_schema =>'HR',object_name =>'EMPLOYEES',policy_name =>'SAL_SELECT_AUDIT',audit_condition => 'instr(job_id,''_MAN'') > 0',a
19、udit_column =>'SALARY');end;ADD_POLICY添加使用谓词和审计列的审计策略DROP_POLICY删除审计策略DISABLE_POLICY禁用审计策略,但保留与表或视图关联的策略ENABLE_POLICY启用策略与审计相关的数据字典视图数据字典视图说明AUDIT_ACTIONS包含审计跟踪动作类型代码的描述,例如INSERT、DROP VIEW 、DELETE、LOGON 和 LOCKDBA_AUDIT_OBJECT与数据库中对象相关的审计跟踪记录DBA_AUDIT_POLICIES数据库中的细粒度审计策略DBA_AUDIT_SESSION与
20、 CONNECT 和 DISCONNECT 相关的所有审计跟踪记录DBA_AUDIT_STATEMENT与 GRANT、 REVOKE、 AUDIT 、NOAUDIT 和 ALTERSYSTEM 命令相关的审计跟踪条目DBA_AUDIT_TRAIL包含标准审计跟踪条目。USER_AUDIT_TRAILUSER_TRAIL_AUDIT只包含已连接用户的审计行DBA_FGA_AUDIT_TRAIL细粒度审计策略的审计跟踪条目数据字典视图说明.DBA_COMMON_AUDIT_TRAIL将标准的审计行和细粒度的审计行结合在一个视图中DBA_OBJ_AUDIT_OPTS对数据库对象生效的审计选项DBA
21、_PRIV_AUDIT_OPTS对系统权限生效的审计选项DBA_STMT_AUDIT_OPTS对语句生效的审计选项保护审计跟踪审计跟踪自身需要受到保护,特别是在非系统用户必须访问表SYS.AUD$时。内置的角色DELETE_ANY_CATALOG 是非 SYS 用户可以访问审计跟踪的一种方法(例如,归档和截取审计跟踪,以确保它不会影响到SYS 表空间中其他对象的空间需求)。为了建立对审计跟踪自身的审计,以SYSDBA 身份连接到数据库,并运行下面的命令:SQL> audit all on sys.aud$ by access;现在,所有针对表SYS.AUD$的动作,包括select 、
22、insert 、update 和 delete ,都记录在SYS.AUD$自身中。但是,您可能会问,如果某个人删除了标识对表SYS.AUD$访问的审计记录,这时会发生什么?此时将删除表中的行,但接着插入另一行,记录行的删除。因此,总是存在一些针对SYS.AUD$ 表的 ( 有意的或偶然的)活动的证据。此外,如果将AUDIT_SYS _OPERATIONS 设置为 True ,使用 as sysdba 、 as sysoper 或以 SYS 自身连接的任何会话将记录到操作系统审计位置中,甚至Oracle DBA 可能都无法访问该位置。因此,有许多合适的安全措施,用于确保记录数据库中所有权限的活动
23、,以及隐藏该活动的任何尝试。将审计相关的表更换表空间由于 AUD$ 表等审计相关的表存放在SYSTEM 表空间,因此为了不影响系统的性能,保护SYSTEM 表空间,最好把AUD$ 移动到其他的表空间上。可以使用下面的语句来进行移动:.sql>connect / as sysdba;sql>alter table aud$ move tablespace <new tablespace>sql>alter index I_aud1 rebuild online tablespace <new tablespace>SQL> alter table
24、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>SQL> conn /as sysdba
25、SQL> show parameter auditNAMETYPEVALUE- - -audit_file_deststring/u01/app/oracle/admin/ORCL/adumpaudit_sys_operationsbooleanFALSEaudit_syslog_levelstringSQL> alter system set audit_sys_operations=TRUE scope=spfile; -审计管理用户 ( 以sysdba/sysoper 角色登陆 )SQL> alter system set audit_trail=db,extended
26、 scope=spfile;SQL> startup force;SQL> show parameter auditNAMETYPEVALUE- - -audit_file_deststring/u01/app/oracle/admin/ORCL/adumpaudit_sys_operationsboolean TRUEaudit_syslog_levelstringaudit_trailstringDB, EXTENDED如果在命令后面添加 by user 则只对 user 的操作进行审计 ,如果省去 by 用户 ,则对系统中所有的用户进行审计 (不包含 sys 用户 ).例:A
27、UDIT DELETE ANY TABLE;-审计删除表的操作AUDIT DELETE ANY TABLE WHENEVER NOT SUCCESSFUL;-只审计删除失败的情况AUDIT DELETE ANY TABLE WHENEVER SUCCESSFUL;-只审计删除成功的情况AUDIT DELETE,UPDATE,INSERT ON user.table by test;-审计 test 用户对表user.table的 delete,update,insert操作.撤销审计SQL> noaudit all on t_test;将审计结果表从system表空间里移动到别的表空间上
28、实际上 sys.aud$ 表上包含了两个lob 字段,并不是简单的move table就可以。下面是具体的过程:alter table sys.aud$ move tablespace users;alter table sys.aud$ move lob(sqlbind) store as( tablespace USERS); alter table sys.aud$ move lob(SQLTEXT) store as( tablespace USERS); alter index sys.I_AUD1 rebuild tablespace users;应用语句审计多层环境下的审计: appserve- 应用服务器, jackson-client AUDIT SELECT TABLE BY appserve ON BEHALF OF jackson;审计连接或断开连接:AUDIT SESSION;AUDIT SESSION BY jeff, lori; -指定用户审计权限 (使用该权限才能执行的操作) :AUDIT DELETE ANY TABLE BY ACCESS WHENEVER NOT SUCCESSFUL; AUDIT DELETE ANY TABLE;AUDIT SELECT TABLE, INSERT TABLE, DELETE TAB
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- GB/T 14124-2024机械振动与冲击固定建筑结构的振动振动测量及对结构影响评价的指南
- PB-22-8-Hydroxyisoquinoline-isomer-生命科学试剂-MCE-5052
- Lariciresinol-4-O-β-D-glucopyranoside-生命科学试剂-MCE-5846
- E3-Ligase-Ligand-linker-Conjugate-122-生命科学试剂-MCE-1944
- 二零二五年度航空航天产业融资合作协议书
- 二零二五年度用人单位与派遣公司国际化人才派遣服务协议
- 2025年度音乐制作与音乐版权许可合同
- 2025年度活动板房销售与临时办公场所租赁合同
- 二零二五年度商业地产贷款合同范本
- 2025年度饭店短期餐饮服务员劳务派遣协议
- 2025年广州中医药大学顺德医院(佛山市顺德区中医院)招考聘用高频重点提升(共500题)附带答案详解
- 2025年华侨港澳台学生联招考试英语试卷试题(含答案详解)
- 2025-2030年中国美容院行业营销创新战略制定与实施研究报告
- 2024-2025学年北京石景山区九年级初三(上)期末语文试卷(含答案)
- 第一章 整式的乘除 单元测试(含答案) 2024-2025学年北师大版数学七年级下册
- 药品流通监管培训
- JD37-009-2024 山东省存量更新片区城市设计编制技术导则
- 中国高血压防治指南(2024年修订版)
- 北京市海淀区重点中学2025届高考数学押题试卷含解析
- 2024EPC施工总包合同范本
- GB/Z 44765.3-2024用户端能源管理系统和电网侧管理系统间的接口第3部分:架构
评论
0/150
提交评论