设为首页 收藏本站
查看: 1515|回复: 0

[经验分享] Oracle OCP笔记(20)数据库安全与审计

[复制链接]

尚未签到

发表于 2015-11-8 14:52:57 | 显示全部楼层 |阅读模式
Oracle OCP笔记(20)数据库安全与审计


一.审计SYSDBA活动
    启用审计SYSDBA活动,作为SYSDBA或SYSOPER连接数据库的用户所发布的每条语句都会被写入操作系统的审计跟踪,从而能够给出dba所进行操作的完整记录。
    审计跟踪必须受到保护,如果dba能够删除审计记录,那么创建这些审计记录就毫无意义。因此,dba不应该拥有操作系统的超级用户权限。
    关于审计的参数:
    audit_sys_operations  -- 是否启用审计SYSDBA活动,默认情况为TRUE
    audit_file_dest       -- 审计跟踪文件所在目录
    select name,value from v$parameter where name like 'audit%';
   
二.数据库审计
    设置数据库审计之前,必须设置audit_trail参数,参数值:
    ·NONE(或者FALSE): 禁用数据库审计
    ·OS: 审计记录会被写至操作系统的审计跟踪目录(audit_file_dest所在目录).
    ·DB:审计记录会被写入数据字典表sys.aud$.
    ·DB_EXTENDED: 与DB大体相同,不过包含生成审计记录的、具有绑定变量的SQL语句.
    ·XML: 与OS的作用大体相同,但使用XML标记设置格式.
    ·XML_EXTENDED: 与XML大体相同,但使用SQL语句和绑定变量.
    设置audit_trail参数后,就可以使用数据库审计来捕获登录尝试、系统权限与对象权限的使用以及SQL命令的执行,还可以指定当这些事件成功和/或因权限控制而失败时是否对它们进行审计。审计对没有成功执行的命令特别有用,此时生成的任何记录都会说明用户试图违反自己的访问权限。
    使用audit命令可以配置数据库审计:
    SQL> audit create any trigger;
    SQL> audit select any table by session;  
    SQL> audit select any table by access;
    -- by session审计会为违反审计条件的每个会话生成一条审计记录,不考虑违反条件的次数.
    -- by access为每次违反条件的情况生成一条记录。
    SQL> audit insert on ar.hz_parties whenever successful;  -- 在指定表插入一行就会生成审计记录
    SQL> audit all on ar.ra_interface_lines_all;             -- 审计针对指定表执行DDL语句的每个会话.
    -- whenever successful 审计记录限制为操作成功的记录
    -- whenever not successful
    SQL> audit session whenever not successful;              -- 审计登录
   
    如果要审计操作系统(audit_trail参数设置为OS或XML),使用适当的编辑器,查看在操作系统审计跟踪中创建的文件,查看审计结果。
    如果审计针对数据库(audit_trail参数设置为DB或DB_EXTENDED),审计记录写入数据字典表sys.aud$中,但一般使用视图dba_audit_trail查看审计结果。
   
    审计视图
    dba_audit_trail
    dba_audit_object
    dba_audit_statement
    dba_audit_session
   
三.使用触发器执行基于值的审计
    数据库审计可以捕获到针对某个表执行一条命令的事实,但是没有跟踪受影响的行。例如,如果执行audit insert on hr.employees命令,只要在指定表中插入一行就会生成一条审计记录,但是该审计记录不会包含插入行的实际值。有些时候,我们希望捕获这些实际值,此时就需要使用数据库触发器。
   
CREATE OR REPLACE TRIGGER system.creditrating_audit
AFTER UPDATE OF creditrating
ON oe.customers
REFERENCING NEW AS NEW OLD AS OLD
FOR EACH ROW
BEGIN
  IF :old.creditrating != :new.creditrating THEN
    INSERT INTO system.creditrating_audit VALUES(sys_context('userenv','os_user'),sys_context('userenv','ip_address'),:new.cust_id||' credite trating changed from '||:old.creditrating||' to '||:new.creditrating);      
  END IF;
END;
/


四.细粒度审计(fine-grained auditing,FGA)
    细粒度审计可以被配置为只在访问特定行或特定行的特定列时生成审计记录,此外还可以被配置为在违反审计条件时运行一个PL/SQL代码块.
    配置细粒度审计需要使用程序包dbms_fga.创建审计策略使用过程add_policy.
    过程add_policy的参数:
    ·object_schema
    ·object_name
    ·policy_name
    ·audit_condition
    ·audit_column
    ·handler_schema     -- 达到审计条件时所运行过程的用户名
    ·handler_module     -- 达到审计条件时所运行的PL/SQL过程
    ·enable             -- TRUE/FALSE,启用和禁用
    ·statement_types    -- 审计的语句类型: SELECT、INSERT、UPDATE、DELETE
    ·audit_trail
    ·audit_column_opts  -- DBMS_FGA_ANY_COLUMNS/DBMS_FGA_ALL_COLUMNS
   
    创建审计策略例子:
    dbms_fga.add_policy(object_schema => 'HR',
                        object_name => 'EMPLOYEES',
                        policy_name => 'POL1',
                        audit_condition = 'department_id=80',
                        audit_column => 'SALARY');
   
    审计视图:
    dba_audit_trail                    
    dba_fga_audit_trail
  dba_common_audit_trail
  

         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-136669-1-1.html 上篇帖子: 面向对象程序设计之开放-封闭原则(OCP) 下篇帖子: OCP-1Z0-053-V12.02-346题
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表