ImageVerifierCode 换一换
格式:DOCX , 页数:18 ,大小:25.24KB ,
资源ID:2136321      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bingdoc.com/d-2136321.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(oracle审计功能讲述.docx)为本站会员(b****1)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

oracle审计功能讲述.docx

1、oracle审计功能讲述Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象。审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用。下表中总结了Oracle数据库中不同类型的审计。审 计 类 型说 明语句审计按照语句类型审计SQL语句,而不论访问何种特定的模式对象。也可以在数据库中指定一个或多个用户,针对特定的语句审计这些用户权限审计审计系统权限,例如CREATE TABLE或ALTER INDEX。和语句审计一样,权限审计可以指定一个或多个特定的用户作为审计的目标模式对象审计审计特定模式对象上运行的特定语句(例如,DEPARTMENTS表上的UPDATE

2、语句)。模式对象审计总是应用于数据库中的所有用户细粒度的审计根据访问对象的内容来审计表访问和权限。使用程序包DBMS_FGA来建立特定表上的策略下面几节介绍DBA如何管理系统和对象权限使用的审计。当需要一定的粒度时,DBA可以使用细粒度的审计来监控对表中某些行或列的访问,而不仅仅是是否访问表。和审计相关的主要参数SQLshow parameter auditaudit_file_destaudit_sys_operationsaudit_trailaudit_sys_operations:默认为false,当设置为true时,所有sys用户(包括以sysdba,sysoper身份登录的用户)的

3、操作都会被记录,audit trail不会写在aud$表中,这个很好理解,如果数据库还未启动aud$不可用,那么像conn /as sysdba这样的连接信息,只能记录在其它地方。如果是windows平台,audti trail会记录在windows的事件管理中,如果是linux/unix平台则会记录在audit_file_dest参数指定的文件中。audit_trail:None:是默认值,不做审计;DB:将audit trail 记录在数据库的审计相关表中,如aud$,审计的结果只有连接信息;DB,Extended:这样审计结果里面除了连接信息还包含了当时执行的具体语句;OS:将audit

4、 trail 记录在操作系统文件中,文件名由audit_file_dest参数指定;XML:10g里新增的。10g Values:noneDisables database auditing.osEnables database auditing and directs all audit records to the operating systems audit trail.dbEnables database auditing and directs all audit records to the database audit trail (theSYS.AUD$table).db,e

5、xtendedEnables database auditing and directs all audit records to the database audit trail (theSYS.AUD$table). In addition, populates theSQLBINDandSQLTEXTCLOB columns of theSYS.AUD$table.xmlEnables database auditing and writes all audit records to XML format OS files.xml,extendedEnables database aud

6、iting and prints all columns of the audit trail, including SqlText and SqlBind values.注:参数AUDIT_TRAIL不是动态的,为了使AUDIT_TRAIL参数中的改动生效,必须关闭数据库并重新启动。在对SYS.AUD$表进行审计时,应该注意监控该表的大小,以避免影响SYS表空间中其他对象的空间需求。推荐周期性归档SYS.AUD$中的行,并且截取该表。Oracle提供了角色 DELETE_CATALOG_ROLE,和批处理作业中的特殊账户一起使用,用于归档和截取审计表。audit_file_dest:Audi

7、t_trail=OS时 文件位置1.语句审计所有类型的审计都使用audit命令来打开审计,使用noaudit命令来关闭审计。对于语句审计,audit命令的格式看起来如下所示:AUDIT sql_statement_clause BY SESSION | ACCESSWHENEVER NOT SUCCESSFUL;sql_statement_clause包含很多条不同的信息,例如希望审计的SQL语句类型以及审计什 么人。此外,希望在每次动作发生时都对其进行审计(by access)或者只审计一次(by session)。默认是by session。有时希望审计成功的动作:没有生成错误消息的语句。

8、对于这些语句,添加whenever successful。而有时只关心使用审计语句的命令是否失败,失败原因是权限违犯、用完表空间中的空间还是语法错误。对于这些情况,使用 whenever not successful。对于大多数类别的审计方法,如果确实希望审计所有类型的表访问或某个用户的任何权限,则可以指定all而不是单个的语句类型或对象。表1列出了可以审计的语句类型,并且在每个类别中包含了相关语句的简要描述。如果指定all,则审计该列表中的任何语句。然而,表2中的语句类型在启用审计时不属于all类别;必须在audit命令中显式地指定它们。表1 包括在ALL类别中的可审计语句语 句 选 项SQ

9、L操作ALTER SYSTEM所有ALTER SYSTEM选项,例如,动态改变实例参数,切换到下一个日志文件组,以及终止用户会话CLUSTERCREATE、ALTER、DROP或TRUNCATE集群CONTEXTCREATE CONTEXT或DROP CONTEXTDATABASE LINKCREATE或DROP数据库链接DIMENSIONCREATE、ALTER或DROP维数DIRECTORYCREATE或DROP目录INDEXCREATE、ALTER或DROP索引MATERIALIZED VIEWCREATE、ALTER或DROP物化视图NOT EXISTS由于不存在的引用对象而造成的SQ

10、L语句的失败PROCEDURECREATE或DROP FUNCTION、LIBRARY、PACKAGE、PACKAGE BODY或PROCEDUREPROFILECREATE、ALTER或DROP配置文件PUBLIC DATABASE LINKCREATE或DROP公有数据库链接PUBLIC SYNONYMCREATE或DROP公有同义词ROLECREATE、ALTER、DROP或SET角色ROLLBACK SEGMENTCREATE、ALTER或DROP回滚段SEQUENCECREATE或DROP序列SESSION登录和退出SYNONYMCREATE或DROP同义词SYSTEM AUDIT系

11、统权限的AUDIT或NOAUDITSYSTEM GRANTGRANT或REVOKE系统权限和角色TABLECREATE、DROP或TRUNCATE表TABLESPACECREATE、ALTER或DROP表空间TRIGGERCREATE、ALTER(启用/禁用)、DROP触发器;具有ENABLE ALL TRIGGERS或DISABLE ALL TRIGGERS的ALTER TABLETYPECREATE、ALTER和DROP类型以及类型主体USERCREATE、ALTER或DROP用户VIEWCREATE或DROP视图表2 显式指定的语句类型语 句 选 项SQL 操 作ALTER SEQUEN

12、CE任何ALTER SEQUENCE命令ALTER TABLE任何ALTER TABLE命令COMMENT TABLE添加注释到表、视图、物化视图或它们中的任何列DELETE TABLE删除表或视图中的行EXECUTE PROCEDURE执行程序包中的过程、函数或任何变量或游标GRANT DIRECTORYGRANT或REVOKE DIRECTORY对象上的权限GRANT PROCEDUREGRANT或REVOKE过程、函数或程序包上的权限GRANT SEQUENCEGRANT或REVOKE序列上的权限GRANT TABLEGRANT或REVOKE表、视图或物化视图上的权限GRANT TYPE

13、GRANT或REVOKE TYPE上的权限INSERT TABLEINSERT INTO表或视图LOCK TABLE表或视图上的LOCK TABLE命令SELECT SEQUENCE引用序列的CURRVAL或NEXTVAL的任何命令SELECT TABLESELECT FROM表、视图或物化视图UPDATE TABLE在表或视图上执行UPDATE一些示例可以帮助读者更清楚地了解所有这些选项。在示例数据库中,用户KSHELTON具有HR模式和其他模式中所有表上的权限。允许 KSHELTON创建其中一些表上的索引,但如果有一些与执行计划改动相关的性能问题,则需要知道何时创建这些索引。可以使用如下命

14、令审计 KSHELTON创建的索引:SQL audit index by kshelton;Audit succeeded.后面的某一天,KSHELTON在HR.JOBS表上创建了一个索引:SQL create index job_title_idx on hr.jobs(job_title);Index created.检查数据字典视图DBA_AUDIT_TRAIL中的审计跟踪,可以看到KSHELTON实际上在8月12日的5:15 P.M.创建了索引:SQL select username, to_char(timestamp,MM/DD/YY HH24:MI) Timestamp,2 ob

15、j_name, action_name, sql_text from dba_audit_trail3 where username = KSHELTON;USERNAME TIMESTAMP OBJ_NAME ACTION_NAME SQL_TEXT- - - - -KSHELTON 08/12/07 17:15 JOB_TITLE_IDX CREATE INDEX create index hr.job_title_idx onhr.jobs(job_title)1 row selected.注意:从Oracle Database 11g开始,只有在初始参数AUDIT_TRAIL被设置为D

16、B_EXTENDED时,才填充DBA_AUDIT_TRAIL中的列SQL_TEXT和SQL_BIND。默认情况下,AUDIT_TRAIL的值是DB。为了关闭HR.JOBS表上KSHELTON的审计,可以使用noaudit命令,如下所示:SQL noaudit index by kshelton;Noaudit succeeded.也可能希望按常规方式审计成功的和不成功的登录,这需要两个audit命令:SQL audit session whenever successful;Audit succeeded.SQL audit session whenever not successful;Au

17、dit succeeded.2.权限审计审计系统权限具有与语句审计相同的基本语法,但审计系统权限是在sql_statement_clause中,而不是在语句中,指定系统权限。例如,可能希望将ALTER TABLESPACE权限授予所有的DBA,但希望在发生这种情况时生成审计记录。启用对这种权限的审计的命令看起来类似于语句审计:SQL audit alter tablespace by access whenever successful;Audit succeeded.每次成功使用ALTER TABLESPACE权限时,都会将一行内容添加到SYS.AUD$。使用SYSDBA和SYSOPER权限

18、或者以SYS用户连接到数据库的系统管理员可以利用特殊的审计。为了启用这种额外的审计级别,可以设置初始参数AUDIT_SYS_OPERATIONS为TRUE。这种审计记录发送到与操作系统审计记录相同的位置。因此,这个位置是和操作系统相关的。当使用其中一种权限时执行的所有SQL语句,以及作为用户SYS执行的任何SQL语句,都会发送到操作系统审计位置。模式对象审计审计对各种模式对象的访问看起来类似于语句审计和权限审计:AUDIT schema_object_clause BY SESSION | ACCESSWHENEVER NOT SUCCESSFUL;schema_object_clause指定

19、对象访问的类型以及访问的对象。可以审计特定对象上14种不同的操作类型,下表中列出了这些操作。对 象 选 项说 明ALTER改变表、序列或物化视图AUDIT审计任何对象上的命令COMMENT添加注释到表、视图或物化视图DELETE从表、视图或物化视图中删除行EXECUTE执行过程、函数或程序包FLASHBACK执行表或视图上的闪回操作GRANT授予任何类型对象上的权限INDEX创建表或物化视图上的索引INSERT将行插入表、视图或物化视图中LOCK锁定表、视图或物化视图READ对DIRECTORY对象的内容执行读操作RENAME重命名表、视图或过程SELECT从表、视图、序列或物化视图中选择行U

20、PDATE更新表、视图或物化视图如果希望审计HR.JOBS表上的所有insert和update命令,而不管谁正在进行更新,则每次该动作发生时,都可以使用如下所示的audit命令:SQL audit insert, update on hr.jobs by access whenever successful;Audit successful.用户KSHELTON决定向HR.JOBS表添加两个新行:SQL insert into hr.jobs (job_id, job_title, min_salary, max_salary)2 values (IN_CFO,Internet Chief F

21、un Officer, 7500, 50000);1 row created.SQL insert into hr.jobs (job_id, job_title, min_salary, max_salary)2 values (OE_VLD,Order Entry CC Validation, 5500, 20000);1 row created.查看DBA_AUDIT_TRAIL视图,可以看到KSHELTON会话中的两个insert命令:USERNAME TIMESTAMP OWNER OBJ_NAME ACTION_NAMESQL_TEXT- - - - -KSHELTON 08/12

22、/07 22:54 HR JOBS INSERTinsert into hr.jobs (job_id, job_title, min_salary, max_salary)values (IN_CFO,Internet Chief Fun Officer, 7500, 50000);KSHELTON 08/12/07 22:53 HR JOBS INSERTinsert into hr.jobs (job_id, job_title, min_salary, max_salary)values (OE_VLD,Order Entry CC Validation, 5500, 20000);K

23、SHELTON 08/12/07 22:51 LOGON3 rows selected.4.细粒度的审计从Oracle9i开始,通过引入细粒度的对象审计,或称为FGA,审计变得更为关注某个方面,并且更为精确。由称为DBMS_FGA的PL/SQL程序包实现FGA。使用标准的审计,可以轻松发现访问了哪些对象以及由谁访问,但无法知道访问了哪些行或列。细粒度的审计可解决这个问题,它不仅为需要访问的行指定谓词(或where子句),还指定了表中访问的列。通过只在访问某些行和列时审计对表的访问,可以极大地减少审计表条目的数量。程序包DBMS_FGA具有4个过程:ADD_POLICY添加使用谓词和审计列的审计

24、策略DROP_POLICY删除审计策略DISABLE_POLICY禁用审计策略,但保留与表或视图关联的策略ENABLE_POLICY启用策略用户TAMARA通常每天访问HR.EMPLOYEES表,查找雇员的电子邮件地址。系统管理员怀疑TAMARA正在查看经理们的薪水信息,因此他们建立一个FGA策略,用于审计任何经理对SALARY列的任何访问:begindbms_fga.add_policy(object_schema = HR,object_name = EMPLOYEES,policy_name = SAL_SELECT_AUDIT,audit_condition = instr(job_i

25、d,_MAN) 0,audit_column = SALARY);end;可以使用数据字典视图DBA_FGA_AUDIT_TRAIL访问细粒度审计的审计记录。如果一般需要查看标准的审计行和细粒度的审计行,则数据字典视图DBA_COMMON_AUDIT_TRAIL结合了这两种审计类型中的行。继续看示例,用户TAMARA运行了如下两个SQL查询:SQL select employee_id, first_name, last_name, email from hr.employees2 where employee_id = 114;EMPLOYEE_ID FIRST_NAME LAST_NAME

26、 EMAIL- - - -114 Den Raphaely DRAPHEAL1 row selected.SQL select employee_id, first_name, last_name, salary from hr.employees2 where employee_id = 114;EMPLOYEE_ID FIRST_NAME LAST_NAME SALARY- - - -114 Den Raphaely 110001 row selected.第一个查询访问经理信息,但没有访问SALARY列。第二个查询与第一个查询相同,但是访问了SALARY列,因此触发了FGA策略,从而在审

27、计跟踪中生成了一行:SQL select to_char(timestamp,mm/dd/yy hh24:mi) timestamp,2 object_schema, object_name, policy_name, statement_type3 from dba_fga_audit_trail4 where db_user = TAMARA;TIMESTAMP OBJECT_SCHEMA OBJECT_NAME POLICY_NAME STATEMENT_TYPE- - - -08/12/07 18:07 HR EMPLOYEES SAL_SELECT_AUDITSELECT1 row

28、selected.因为在本章前面的VPD示例中建立了细粒度的访问控制来阻止对SALARY列的未授权访问,因此需要加倍检查策略函数,确保仍然正确限制了SALARY信息。细粒度的审计以及标准审计是确保首先正确建立授权策略的好方法。5.与审计相关的数据字典视图下表包含了与审计相关的数据字典视图。数据字典视图说 明AUDIT_ACTIONS包含审计跟踪动作类型代码的描述,例如INSERT、DROP VIEW、DELETE、LOGON和LOCKDBA_AUDIT_OBJECT与数据库中对象相关的审计跟踪记录DBA_AUDIT_POLICIES数据库中的细粒度审计策略DBA_AUDIT_SESSION与CONNECT和DISCONNECT相关的所有审计跟踪记录DBA_AUDIT_STATEMENT与GRANT、REVOKE、AUDIT、NOAUDIT和ALTER SYSTEM命令相关的审计跟踪条目DBA_AUDIT_TRAIL包含标准审计跟踪条目。USER_AUDIT_TRAILUSER_TRAIL_AUDIT只包含已连接用户的审计行DBA_FGA_AUDIT_TRAIL细粒度审计策略的审计跟踪条目

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2