五、管理对象审计:
/*
针对具体的一个对象进行审计不能对一个用户进行审计。
包括select、delete、update、insert、excute对象特权。
*/
--5.1 启用对象审计
/*
环境准备:
SQL> create user win identified by password quota 100m on users;
用户已创建。
SQL> grant create session, create table to win;
授权成功。
SQL> conn win
输入口令:
已连接。
SQL> create table accp
2 (
3 sid int
4 );
表已创建。
SQL> insert into accp values (1001);
已创建 1 行。
SQL> select * from accp;
SID
----------
1001
SQL> commit;
*/
--案例1:使用select审计
--步骤1:查看启用的对象scott.emp审计选项
select owner, object_name,object_type, ins,sel from
dba_obj_audit_opts
where owner='WIN'
and object_name='ACCP';
未选定行
--步骤2:开启审计对象
SQL> show user
USER 为 "SYS"
SQL> audit select on win.accp ;
审计已成功。
--步骤3:查看启用的对象scott.emp审计选项
select owner, object_name,object_type, ins,sel from
dba_obj_audit_opts
where owner='WIN'
and object_name='ACCP';
OWNER OBJECT_NAME OBJECT_TYPE INS SEL
------------------------------ ------------------------------ ----------------- ----- -----
WIN ACCP TABLE -/- S/S
/*
******如果步骤2中使用的by access则结果如下:
OWNER OBJECT_NAME OBJECT_TYPE INS SEL
------------------------------ ------------------------------ ----------------- ----- -----
WIN ACCP TABLE -/- A/A
*/
--步骤4:让用户对对象进行操作
SQL> grant select on win.accp to scott; --授权让用户scott可以查看用户win的表accp
授权成功。
SQL> conn scott/tiger
已连接。
SQL> select * from win.accp;
TID
----------
1001
--步骤5:检查审计跟踪
SQL> conn sys as sysdba
输入口令:
已连接。
select username, to_char(timestamp,'yyyy:mm:dd:hh') time, action_name from dba_audit_trail
where username='SCOTT';
USERNAME TIME ACTION_NAME
------------------------------ ------------- ------------------
SCOTT 2008:10:29:02 SESSION REC
/**********如果步骤2中使用的是by access则该步结果如下:
USERNAME TIME ACTION_NAME
------------------------------ ------------- ----------------------------
SCOTT 2008:10:29:03 SELECT
*/
--步骤6:清空审计记录
SQL> delete from sys.aud$ ;
--案例2:使用insert审计
--步骤1:查看启用的对象scott.emp审计选项
select owner, object_name,object_type, ins,sel from
dba_obj_audit_opts
where owner='WIN'
and object_name='ACCP';
未选定行
--步骤2:开启审计对象
SQL> audit insert on win.accp;
审计已成功。
--步骤3:查看启用的对象scott.emp审计选项
select owner, object_name,object_type, ins,sel from
dba_obj_audit_opts
where owner='WIN'
and object_name='ACCP';
OWNER OBJECT_NAME OBJECT_TYPE INS SEL
------------------------------ ------------------------------ ----------------- ----- -----
WIN ACCP TABLE S/S -/-
/*
******如果步骤2中使用的by access则结果如下:
OWNER OBJECT_NAME OBJECT_TYPE INS SEL
------------------------------ ------------------------------ ----------------- ----- -----
WIN ACCP TABLE A/A -/-
*/
--步骤4:让用户对对象进行操作
SQL> grant insert on win.accp to scott; --授权让用户scott可以查看用户win的表accp
授权成功。
SQL> conn scott/tiger
已连接。
SQL> select * from win.accp;
SID
----------
1001
SQL> insert into win.accp values (1002);
已创建 1 行。
SQL> select * from win.accp;
SID
----------
1001
1002
--步骤5:检查审计跟踪
SQL> conn sys as sysdba
输入口令:
已连接。
select username, to_char(timestamp,'yyyy:mm:dd:hh') time, action_name from dba_audit_trail
where username='SCOTT';
USERNAME TIME ACTION_NAME
------------------------------ ------------- ------------------
SCOTT 2008:10:29:02 SESSION REC
/**********如果步骤2中使用的是by access则该步结果如下:
USERNAME TIME ACTION_NAME
------------------------------ ------------- ----------------------------
SCOTT 2008:10:29:03 INSERT
*/
--步骤6:清空审计记录
SQL> delete from sys.aud$ ;
----------------------------------------------------------------------------------------
****************************************************************************************
七、管理精细审计:
****************************************************************************************
----------------------------------------------------------------------------------------
--7.1 环境准备
/*
SQL> show user
USER 为 "SYS"
create user win identified by password
quota 100m on users;
grant create session to win;
SQL> conn scott/tiger
已连接。
SQL> show user
USER 为 "SCOTT"
create table accp
(
sid int,
sno int
)
go
insert into accp values (1001,2001);
SQL> conn sys/password as sysdba
已连接。
SQL> show user
USER 为 "SYS"
grant select on scott.accp to win;
*/
---7.2 案例演示:
--(1) 查询数据库中存在的FGA策略
select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
from dba_audit_policies;
未选定行
--(2)新建FGA策略noselect
begin
dbms_fga.add_policy(object_schema=>'scott'
,object_name=>'accp'
,policy_name=>'noselect'
,audit_column=>'sid'
,enable=>false
,statement_types=>'select,update,delete'
);
end
;
/
--(3) 查询数据库中存在的FGA策略
select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
from dba_audit_policies;
POLICY_NAME OBJECT_SCHEMA POLICY_NAME POLICY_COLUMN ENABLED AUDIT_TRAIL
-------------------------- ------------------------------ ------------------------------ ---
NOSELECT SCOTT NOSELECT SID NO DB+EXTENDED
-- (4) 启用FGA策略并查看数据库中存在的FGA策略
begin
dbms_fga.enable_policy(object_schema=>'scott'
,object_name=>'accp'
,policy_name=>'noselect'
);
end
;
/
select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
from dba_audit_policies;
POLICY_NAME OBJECT_SCHEMA POLICY_NAME POLICY_COLUMN ENABLED AUDIT_TRAIL
-------------------------- ------------------------------ ------------------------------ ---
NOSELECT SCOTT NOSELECT SID YES DB+EXTENDED
--(5) 查看FGA策略跟踪报表
SQL> select db_user, timestamp, userhost from dba_fga_audit_trail where policy_name='NOSELECT';
未选定行
-- (6) win用户操作
SQL> conn win/password
已连接。
SQL> show user
USER 为 "WIN"
select * from scott.accp;
--(7) 查看FGA策略跟踪报表
SQL> select db_user, timestamp, userhost from dba_fga_audit_trail where policy_name='NOSELECT';
DB_USER TIMESTAMP USERHOST
------------------------------ ----------- --------------------------------------------------------------------------------
SCOTT 2008-10-29 WORKGROUP\NANJING
--(8) 停用FGA策略并检查数据库存在的策略
begin
dbms_fga.disable_policy(object_schema=>'scott'
,object_name=>'accp'
,policy_name=>'noselect'
);
end
;
/
select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
from dba_audit_policies;
POLICY_NAME OBJECT_SCHEMA POLICY_NAME POLICY_COLUMN ENABLED AUDIT_TRAIL
-------------------------- ------------------------------ ------------------------------ ---
NOSELECT SCOTT NOSELECT SID NO DB+EXTENDED
--(9) 删除FGA策略并查看数据库是否还存在这个FGA策略
begin
dbms_fga.drop_policy(object_schema=>'scott'
,object_name=>'accp'
,policy_name=>'noselect'
);
end
;
/
select policy_name, object_schema ,policy_name, policy_column, enabled, audit_trail
from dba_audit_policies;
未选定行
分享到:
相关推荐
详细分析Oracle审计功能,详细分析Oracle审计功能
Oracle数据库自身没有针对安全审计数据的分析工具,为了改进与完善Oracle当前安全审计机制,采用了数据挖掘技术,将数据挖掘技术应用至Oracle数据库安全审计中来,对数据库的记录特点进行分析,通过审计记录的分析,提出了...
unified auditing ,oracle 12c 以后开启归档的方法。包括了开启,关闭,rman,DML审计
oracle开启audit(审计)的详细过程.
审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的SYS.AUD$表中,可通过视图dba_audit_...
Oracle数据库审计
Oracle数据库审计功能的安全审计获取技术.doc
Oracle审计功能,有利于你对审计功能的了解
EBS自带审计功能,审计功能是记录系统使用者的操纵记录,例如什么时间对哪张表的那个的字段做了修改、删除等操作,审计功能都会记录相应的时间、修改者、修改前该字段的值。在实际业务中对一些敏感信息(例如订单行...
Oracle审计功能,审计是对选定的用户动作的监控和记录。
Oracle_授权审计表Truncate权限
Oracle审计功能解读,用于记录数据库中表的数据变化,如增、删除、改、查等操作记录。可以记录对数据库对象的所有操作。什么时候,什么用户对什么对象进行了什么类型的操作。
oracle 审计功能说明,word文档
利用Oracle审计功能记录数据库操作.doc
oracle对某表进行审计,观察对这个表的增删改查等sql操作
管理信息化ORACLEOracle审计手册.pdf
oracle的登录、登出触发器(时间、来访ip、用户信息、sid等等),ddl操作记录触发器(含create、drop、alter、truncate等),都属于事后触发,不影响业务操作
审计(Audit)用于监视用户所执行的数据库操作,并且Oracle会将审计跟踪结果存放到OS文件(默认位置为$ORACLE_BASE/admin/$ORACLE_SID/adump/)或数据库(存储在system表空间中的 SYS.AUD$表中,可通过视图dba_audit_...
操作系统文件提供比SYS.AUD$表更强大的安全性,特别是在希望阻止数据库管理员查看或修改审计跟踪的情况下。即使关闭数据库实例,仍然可以继续使用保存在数据库外的审计日志,但还是可以通过一个新的视图,V$XML_...
Oracle安全设置Oracle安全设置Oracle安全设置Oracle安全设置Oracle安全设置