千家信息网

【读书笔记】数据库审计

发表于:2024-11-12 作者:千家信息网编辑
千家信息网最后更新 2024年11月12日,数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0一、审计类型ORACLE的审计技术,除了SYSDBA审计之外,还有数据库
千家信息网最后更新 2024年11月12日【读书笔记】数据库审计

数据库版本: Oracle Database 11g Enterprise Edition Release 11.2.0.1.0

一、审计类型

ORACLE的审计技术,除了SYSDBA审计之外,还有数据库审计、基于值的审计、细粒度审计。

SQL> show parameter audit;

NAME TYPE VALUE

------------------------------------ ----------- ------------------------------

audit_file_dest string /u01/app/oracle/admin/orcl/adump

audit_sys_operations boolean FALSE

audit_syslog_level string

audit_trail string DB

1.1 SYSDBA审计

audit_sys_operations(默认为false)设置为TRUE,那么作为SYSDBA或SYSOPER连接数据库的用户所发布的每条语句都会被写入操作系统审核跟踪,从而能够给出DBA所进行操作的完整记录。

alter system set audit_sys_operations=TRUE scope=spfile;

之后重启数据库。

之后DBA的操作都会被记录在审计文件中。

1.2 数据库审计

设置数据库审计之前,必须设置audit_trail的值,这个参数可以具有以下值:

NONE(或者FALSE):禁用数据库审计

OS:审计记录会被写至操作系统的文件中;

DB:审计记录写到SYS.AUD$中。

DB_EXTENDED:与DB作用大体相同,不过包含生成审计记录的、具有绑定变量的SQL语句。

XML:与OS作用大体相同,但使用XML标记设置格式。

XML_EXTENDED:与XML作用大体相同,但使用SQL语句和绑定变量。

例如对scott上的emp表做审核

如果audit_trail的值是"DB",那么就看不到执行的语句,因此修改成:

alter system set audit_trail=DB_EXTENDED scope=spfile;

重启数据库。

audit select,delete,update on scott.emp by access;

--关闭审计:noaudit

select * from emp;

update emp

set comm=1500

where empno=7900;

insert into emp

select 7935,ename,job,mgr,hiredate,sal,comm,deptno

from emp

where empno=7934;

delete from emp

where empno=7935;

--查看审计信息

select OS_USERNAME,username,USERHOST,TERMINAL,TIMESTAMP,OWNER,obj_name,ACTION_NAME,

sessionid,os_process,sql_text

from dba_audit_trail

where obj_name='EMP'

order by timestamp desc;

如果audit_trail的值是DB,则看不到sql_text的信息,因此将audit_trail修改成db_extended,重新运行一次。

1.3 基于触发器执行基于值的审计

使用触发器配合审计,将变更的值记录到某个表中。即使不配置审计策略,也可以执行。

例如,我们对scott.emp表上comm列的变更值比较感兴趣,就可以建立一个触发器,将操作的值写入到表中。

create table AUDIT_VALUE_TRAIL

(

terminal VARCHAR2(256),

sessionid VARCHAR2(256),

isdba VARCHAR2(256),

current_user VARCHAR2(256),

os_user VARCHAR2(256),

ip_address VARCHAR2(256),

obj_user VARCHAR2(10),

obj_name VARCHAR2(22),

act_value VARCHAR2(255)

);

create or replace trigger tri_emp_audit

after update of comm on scott.emp

referencing new as new old as old

for each row

begin

if :old.comm !=:new.comm then

insert into sys.audit_value_trail

values(SYS_CONTEXT('USERENV','TERMINAL'),

SYS_CONTEXT('USERENV','sessionid'),

SYS_CONTEXT('USERENV','ISDBA'),

SYS_CONTEXT('USERENV','CURRENT_USER'),

SYS_CONTEXT('USERENV','OS_USER'),

SYS_CONTEXT('USERENV','IP_ADDRESS'),

'scott','emp',:new.empno||' comm is changed from '||:old.comm ||'to '||:new.comm );

end if;

end;

/

执行:

update emp

set comm=2000

where empno=7900;

commit;

对比dba_audit_trail、audit_value_trail的结果是否一样。


1.4 细粒度审计(FGA)

细粒度审计可以配置为只在访问特定行或特定行的特定列时生成审计记录,此外还可以配置为在违反审计条件时运行一个PL/SQL代码块。

配置FGA将会涉及包DBMS_FGA,为了创建一个FGA审计策略,需要使用add_policy过程,这个过程接受下表所示的参数:


参考资料:《OCP/OCA 认证考试指南全册》 第六章:ORACLE安全性 第6节使用标准数据库审核

审计 数据 数据库 语句 配置 相同 作用 粒度 触发器 操作系统 信息 参数 变量 文件 策略 系统 过程 生成 运行 安全 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 河南速点网络技术有限公司 增强型网络安全配置 软件开发质量审核表单 软件开发流程是怎样的 beego数据库热加载 数据库查询分析的内容 徐汇区品牌软件开发常见问题 美国5g网络安全吗 宝山区第三方软件开发哪家好 广东app软件开发哪家可靠 微信后台数据库服务器 怎样查询美团的销售数据库 动态网站数据库 青岛海尔软件开发招聘信息 服务器管理器角色怎么打开 博雅数据库2020江苏文史类 深圳袋盈袋网络技术有限公司 通渭县网络安全 海康嵌入式软件开发工程师面试 百度时代网络技术公司法人 计算机软件开发实习工资待遇 粘液科技等价交换服务器 网络程序服务器管理技术人员 华为服务器分拆上市 国产x86服务器cpu 吉林服务器机箱加工厂家 汽车bms软件开发工工程师 数据库技术及应用模拟题 郑州正规软件开发价钱 拼音 首字母 数据库
0