OCA读书笔记(11) - 实现Oracle数据库审计
11 Implementing Oracle Database Auditing
描述DBA对于安全和审计的职责
使能标准的数据库审计
安全审计选项
查看审计信息
维护审计路径
最小权限原则
只在计算机上安装所需软件
只在计算机上激活所需服务
只允许需要访问的用户访问操作系统和数据库
限制对 root 或管理员帐户的访问
限制对 SYSDBA 和 SYSOPER 帐户的访问
只允许用户访问完成工作所需的数据库对象
O7_DICTIONARY_ACCESSIBILITY的作用:
1. 保护数据字典
演示:当参数为false时,即使赋予普通用户select any table的权限,普通用户也不能访问数据字典;当参数为true时,赋予普通用户同等权限,普通用户才可以访问数据字典。
sqlplus / as sysdba;
show parameter O7;
grant select any table to oe;
alter user oe account unlock identified by oe;
conn oe/oe;
select count(*) from dba_objects; --error
conn / as sysdba;
alter system set O7_DICTIONARY_ACCESSIBILITY=true scope=spfile;
startup force;
show parameter o7;
conn oe/oe;
select count(*) from dba_objects;
conn / as sysdba;
alter system set O7_DICTIONARY_ACCESSIBILITY=false scope=spfile;
startup force;
强制审计
对具有sysdba和sysoper的用户的登录行为进行审计,审计的内容存放的位置:audit_file_dest的值
sqlplus / as sysdba;
show parameter audit_file_dest
select spid from v$process where addr=(select paddr from v$session where sid=(select distinct sid from v$mystat))
cd $ORACLE_BASE/admin/orcl/adump
ls *<spid>*
vi orcl_ora_<spid>.aud
SYSDBA (and SYSOPER)审计
show parameter audit_sys
alter system set audit_sys_operations=true scope=spfile
startup force
ls *7689*
vi orcl_ ... aud
以上内容放置在操作系统文件。
标准数据库审计
show parameter audit_trail
11g 默认打开
审计信息放置在aud$中
desc aud$
查看:
desc dba_audit_trail
grant select any table to scott;
audit select any table by sott by session;
truncate table aud$;
select count(*) from dba_audit_trail;
conn scott/tiger;
conn / as sysdba;
select count(*) from dba_audit_trail;
select username, timestamp, ses_actions, obj_name, action_name, sql_text from dba_audit_trail where username='SCOTT';
alter ssytem set audit_trail=db,extended scope=spfile;
startup force;
noaudit select any table by scott;
audit update on scott.emp;
update scott.emp set sal=sal+100;
select username, timestamp, ses_actions, obj_name, action_name, sql_text from dba_audit_trail where username='HR';
SQL语句审计
AUDIT table;
audit table by hr whenever not successful;
系统权限审计
audit select any table, create any trigger;
audit select any table by hr by session;
对象权限审计
audit all on hr.employees;
audit update,delete on hr.employees by access;
细粒度审计(FGA)
对某个表的某一行或者某列或某行某列进行操作时才进行审计。
通过dbms_fga增加策略来开启细粒度审计,与标准审计没有关系。
dbms_fga.add_policy (
object_schema => 'HR',
object_name => 'EMPLOYEES',
policy_name => 'audit_emps_salary',
audit_condition=> 'department_id=10',
audit_column => 'SALARY,COMMISSION_PCT',
handler_schema => 'secure',
handler_module => 'log_emps_salary',
enable => TRUE,
statement_types => 'SELECT,UPDATE');
审计内容
fga_log$
dba_
conn scott/tiger;
删除审计
exec dbms_fga.drop_policy('scott','emp','audit_emp')
基于值的审计
通过触发器进行审计
创建一个存放审计数据的表
conn / as sysdba
create table system.audit_employees(os_user
varchar2(30),ins_date date,ip_address
varchar2(20),context varchar2(100));
创建触发器
create or replace trigger system.audit_salary
after update of salary on hr.employees
referencing new as new old as old
for each row
begin
if :old.salary != :new.salary then
insert into system.audit_employees
values(sys_context('userenv','os_user'),sysdate,sys_context('userenv','ip_address'),
:new.employee_id||' salary changed from '||:old.salary||' to '||:new.salary);
end if;
end;
验证:
conn hr/hr
update employees set SALARY=SALARY+1000 where EMPLOYEE_ID=190;
SQL> commit;
.bash_profile
userenv
conn system/a
SQL> select * from system.audit_employees;
OCA读书笔记(11) - 实现Oracle数据库审计的更多相关文章
- OCA读书笔记(1) - 浏览Oracle数据库架构
Objectives: List the major architectural components of Oracle DatabaseExplain the memory structuresD ...
- OCA读书笔记(2) - 安装Oracle软件
Objectives: •Describe your role as a database administrator (DBA) and explain typical tasks and tool ...
- OCA读书笔记(6) - 配置Oracle网络环境
6.Configuring the Oracle Network Environment su - grid装grid时自动创建了监听netca--创建新的监听 vi $ORACLE_HOME/net ...
- 机器学习实战 - 读书笔记(11) - 使用Apriori算法进行关联分析
前言 最近在看Peter Harrington写的"机器学习实战",这是我的学习心得,这次是第11章 - 使用Apriori算法进行关联分析. 基本概念 关联分析(associat ...
- 强化学习读书笔记 - 11 - off-policy的近似方法
强化学习读书笔记 - 11 - off-policy的近似方法 学习笔记: Reinforcement Learning: An Introduction, Richard S. Sutton and ...
- OCA读书笔记(7) - 管理数据库存储结构
7.Managing Database Storage Structures 逻辑结构 数据库的存储结构有物理结构和逻辑结构组成的 物理结构:物理上,oracle是由一些操作系统文件组成的 SQL&g ...
- oracle数据库审计
Oracle使用大量不同的审计方法来监控使用何种权限,以及访问哪些对象.审计不会防止使用这些权限,但可以提供有用的信息,用于揭示权限的滥用和误用. 下表中总结了Oracle数据库中不同类型的审计. 审 ...
- 【学习笔记】Y2-1-1 Oracle数据库基础
Oracle 简介关系型(二维表)数据库 用来存储海量数据在大数据量的并发检索的情况下,性能要高于其他同类数据库产品一般运行环境是Linux和UnixOracle版本中的I(Internet) G(G ...
- OCA读书笔记(9) - 管理数据同步
9.Managing Data Concurrency 描述锁机制以及oracle如何管理数据一致性监控和解决锁冲突 管理数据的并发--管理锁数据的不一致:脏读更改丢失幻影读 脏读:数据是指事务T2修 ...
随机推荐
- delphi如何加上spliter分割条,任意调整大小
如题1:如何把一个panel分割成四个小的panle 2:也就是如何加上spliter,分割条,任意调整大小 3.如何有独立的handle使用多个总共5个为什么呢,你放4个panel 然后放split ...
- 一个大学生屌丝心中的seo梦
最 近这几天,我利用空闲时间去网上看到很多关于seoer的生存现状,尤为的感伤.因为自已也是一位爱好seo和利用闲于时间来学习seo的一个大学生屌 丝,在学习的过程中,有辛酸和泪水.但也有快乐,感觉一 ...
- perl use base 代替 @ISA
packge Mule; use base ("Horse", "donkey"); # 声明一个超类 它是下面东西的缩写: package Mule; BEG ...
- QUrl不同版本之间的坑
在项目中使用了native application + html的方式构建界面. 之前在4.8.4用QUrl直接加载相对路径一点问题都没有.但是切换到5.1编译之后却发现本地的html文件全部没有加载 ...
- swap函數 进阶探讨与实现
相信以下這個C程序非常多人都見過啦.當時自己看 美少女战士谭浩强 写的那本书上的解释.反正我当时是没看太懂详细是什么意思.谱架啊~~~ #include <stdio.h> void sw ...
- C#.Net操作XML方法二
上面那篇博客,在上面那面博客中是通过System.Xml命名空间中的类来实现对XML文件的创建.删除和改动等操作.接下来再介绍一种方法,在整个的操作过程中,仅仅只是换了个类而已,没什么大惊小怪的. D ...
- 利用VS2005进行dump文件调试(17篇博客)
前言:利用drwtsn32或NTSD进行程序崩溃处理,都可以生成可用于调试的dmp格式文件.使用VS2005打开生成的DMP文件,能很方便的找出BUG所在位置.本文将讨论以下内容: 1. 程序编译选 ...
- 1.1.6-学习Opencv与MFC混合编程之---播放WAV音乐和 alpha融合功能
源代码:http://download.csdn.net/detail/nuptboyzhb/3961698 Alpha融合菜单项 1. 增加alpha融合菜单项,修改相应的属性,建立类向导 ...
- Mac上利用Eclipse编译Cocos2d-x
目前使用较多的Cocos2d-x开发平台是XCode,应该是由于大部分Cocos2d-x开发者都是iOS开发出生.但是当我们将XCode开发的Cocos2d-x工程发布Android版本时,每次都需要 ...
- delphi删除只读文件
只读文件就是不能删除的文件,用DeleteFile函数对它来说是毫无意义的,要删除只读文件,只有先改变它的属性.如果你要删除一个文件,最好先作两个方面的考虑: (1)判断该文件的属性.可以用上面提到的 ...