首页 > 数据库 >Oracle基础(3)--审计

Oracle基础(3)--审计

时间:2023-09-16 19:56:51浏览次数:36  
标签:AUDIT 审计 -- CREATE POLICY audit MGMT Oracle

数据库的安全性和审计

数据库安全

一个安全的系统可确保其中包含的数据的机密性。 安全性主要有:限制对数据和服务的访问、验证用户、监控可疑活动。


监视和审计

  • Mandatory auditing -- 强制审计

  • Standard database auditing – 标准数据库审

  • Value-based auditing – 基于值的审计

  • Fine-grained auditing (FGA) -- 细粒度审计


审计的活动类型

User accounts, roles, and privileges –用户账号操作 角色和权限

Object actions – 对象操作

Application context values – 应用程序上下文的值

Oracle Data Pump – ORACLE数据泵

Oracle Database Real Application Security – RAC安全

Oracle Database Vault – 数据库加密系统

Oracle Label Security – OACLE标签安全

Oracle Recovery Manager – RMAN恢复管理

Oracle SQL*Loader direct path events – SQLLOADER直接路径事件

…………

强制审计的内容

CREATE/ALTER/DROP AUDIT POLICY

AUDIT/NOAUDIT

EXECUTE of:DBMS_FGA、DBMS_AUDIT_MGMT

ALTER TABLE against AUDSYS audit trail table

Top-level statements by administrative users (SYS, SYSDBA, SYSOPER, SYSASM, SYSBACKUP, SYSDG, and SYSKM) until the database opens

默认审计模式

Oracle 19c之前默认情况下使用混合审计模式。

Oracle 19c之后的默认为统一审计功能(Oracle建议使用)。

查询V$OPTION以确定数据库是否已是统一审计:

`SELECT value FROM v$option WHERE parameter = 'Unified Auditing';`

用户管理审计需要的角色(权限)

  • AUDIT_ADMIN:

      1.创建统一且细粒度的审计策略
      2.执行AUDIT(审计)和NOAUDIT (非审计)SQL语句
      3.查看审计数据
      4.维护和管理审计跟踪(AUDSYS模式中的表)
    
  • AUDIT_VIEWER:

      查看和分析审计数据
    

数据审计流程

image

启用统一审计

  • 1.关闭数据库:
	SQL> SHUTDOWN IMMEDIATE
  • 2.关闭监听
	$ lsnrctl stop
  • 3.在oracle用户下执行启用统一审核可执行文件:
	$ cd $ORACLE_HOME/rdbms/lib
	$ make -f ins_rdbms.mk uniaud_on ioracle ORACLE_HOME=$ORACLE_HOME
  • 4.重启监听:
	$ lsnrctl start
  • 5.打开数据库:
	SQL> STARTUP

创建统一审计策略

统一审计默认策略

(三种包含常用审计项预定义策略)

- ORA_SECURECONFIG
包含与Oracle Database 11g相同的默认审计设置。 默认情况下,此策略为统一审计和混合模式审计环境启用。 有关设置的完整列表,请参考《 Oracle数据库安全指南12c/19c》。

- ORA_DATABASE_PARAMETER_AUDIT
包含用于设置参数(ALTER DATABASE,ALTER SYSTEM和CREATE SPFILE)的常用Oracle数据库命令的审计设置

- ORA_ACCOUNT_MGMT_AUDIT
包含常用用户帐户和权限命令的审计设置(CREATE USER,ALTER USER,DROP USER,CREATE ROLE,DROP ROLE,ALTER ROLE,SET ROLE,GRANT和REVOKE)

创建统一审计策略

  • 使用CREATE AUDIT POLICY 语句:
	CREATE AUDIT POLICY select_emp_pol 审计名
	ACTIONS select on hr.employees     审计动作
  • 也可以使用EMCC进行策略创建。

系统范围的审计选项

  • 对系统权限进行审计:
CREATE AUDIT POLICY audit_syspriv_pol1
PRIVILEGES SELECT ANY TABLE,CREATE LIBRARY
  • 对ALTER TRIGGER操作进行审计:
CREATE AUDIT POLICY audit_actions_po12
ACTIONS AUDIT,ALTER TRIGGER
  • 对角色进行审计:
CREATE AUDIT POLICY audit_role_pol3
ROLES mgr_role
  • 对系统权限 相应操作和角色进行审计:
CREATE AUDIT POLICY audit_mixed_pol4
PRIVILEGES DROP ANY TABLE
ACTIONS CREATE TABLE,DROP TABLE,TRUNCATE TABLE
ROLES emp_role

特定对象审计选项

CREATE AUDIT POLICY audit_objpriv_pol5 
ACTIONS SELECT, UPDATE, LOCK ON hr.employees
CREATE AUDIT POLICY audit_objpriv_pol6 
ACTIONS ALL
CREATE AUDIT POLICY audit_objpriv_pol7 
ACTIONS EXECUTE, GRANT ON hr.raise_salary_proc

指定条件

  • 条件和评估PER SESSION
CREATE AUDIT POLICY audit_mixed_pol5
ACTIONS RENAME ON hr.employees,ALTER  ON hr.jobs,
WHEN 'SYS_CONTEXT (''USERENV'', ''SESSION_USER'')=''JIM'''
EVALUATE PER SESSION
  • 条件和评估PER STATEMENT
CREATE AUDIT POLICY audit_objpriv_pol6
ACTIONS ALTER ON OE.ORDERS
WHEN 'SYS_CONTEXT(''USERENV'',''CLIENT_IDENTIFIER'')=''OE'''
EVALUATE PER STATEMENT
  • 条件和评估PER INSTANCE
CREATE AUDIT POLICY audit_objpriv_pol7
ROLES dba
WHEN SYS_CONTEXT(''USERENV'',''INSTANCE_NAME'')=''sales'''
EVALUATE PER INSTANCE

维护审计记录

启用和禁用审计策略

启用审计策略

  • 适用于所有用户
SQL> AUDIT POLICY audit_syspriv_pol1;
  • 仅适用于某些用户
SQL> AUDIT POLICY audit_pol2 BY scott, oe;
SQL> AUDIT POLICY audit_pol3 BY sys;
  • 排除某些用户
SQL> AUDIT POLICY audit_pol4 EXCEPT jim, george;
  • 根据失败或成功操作定义审计记录
SQL> AUDIT POLICY audit_syspriv_pol1 WHENEVER SUCCESSFUL ;
SQL> AUDIT POLICY audit_objpriv_pol2 WHENEVER NOT SUCCESSFUL ;
SQL> AUDIT POLICY auditpol5 BY joe WHENEVER SUCCESSFUL ;

禁用审计策略

通过使用NOAUDIT命令禁用审计策略


更改统一审计策略

  • 使用ALTER AUDIT POLICY语句
ALTER AUDIT POLICY select_emp_pol
ADD ACTIONS select on hr.job_history
  • 使用EMCC

查看审计策略信息

SQL> SELECT policy_name, audit_option, condition_eval_opt
  2  FROM   audit_unified_policies;

POLICY_NAME          AUDIT_OPTION     CONDITION_EVAL_OPT
-------------------- ---------------- ----------------
POL1                 DELETE           INSTANCE
POL2                 TRUNCATE TABLE   NONE
SQL> SELECT policy_name, enabled_opt, user_name, success, failure
  2  FROM   audit_unified_enabled_policies;

POLICY_NAME          ENABLED_ USER_NAME  SUC FAI
-------------------- -------- ---------- --- ---
POL3                 BY       PM         NO  YES
POL2                 EXCEPT   SYSTEM     NO  YES
POL4                 BY       SYS        YES YES
POL6                 BY       ALL USERS  YES NO

设置审计跟踪记录的写入模式

  • 立即写入模式:立即写入审计记录
SQL> EXEC DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(-
  DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,-
  DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE,-
  DBMS_AUDIT_MGMT.AUDIT_TRAIL_IMMEDIATE_WRITE);
  • 排队写入模式:SGA队列的内容定期写入磁盘(默认模式)
SQL> EXEC DBMS_AUDIT_MGMT.SET_AUDIT_TRAIL_PROPERTY(-
    DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,-
    DBMS_AUDIT_MGMT.AUDIT_TRAIL_WRITE_MODE,-
    DBMS_AUDIT_MGMT.AUDIT_TRAIL_QUEUED_WRITE);

归档和清除审计记录

定期归档并清除审计记录,以防止其过大.

  • 创建审计归档

    将审计跟踪记录复制到数据库表
    使用Oracle Audit Vault

  • 清除审计日志

    通过使用DBMS_AUDIT_MGMT.CREATE_PURGE_JOB PL/SQL过程,创建计划并在指定时间运行的清除作业
    使用DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL PL/SQL过程手动进行

  • 安排自动清除作业

DBMS_AUDIT_MGMT.CREATE_PURGE_JOB
(AUDIT_TRAIL_TYPE=> DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED,AUDIT_TRAIL_PURGE_INTERVAL => 12,
 AUDIT_TRAIL_PURGE_NAME => 'Audit_Trail_PJ',
 USE_LAST_ARCH_TIMESTAMP => TRUE,CONTAINER => DBMS_AUDIT_MGMT.CONTAINER_CURRENT);
  • 手动清除审计记录
DBMS_AUDIT_MGMT.CLEAN_AUDIT_TRAIL(
   AUDIT_TRAIL_TYPE  => DBMS_AUDIT_MGMT.AUDIT_TRAIL_UNIFIED);

标签:AUDIT,审计,--,CREATE,POLICY,audit,MGMT,Oracle
From: https://www.cnblogs.com/ngrhl/p/17707065.html

相关文章

  • 55-选择结构的嵌套
           ......
  • XXE漏洞
    来自:[NCTF2019]FakeXMLcookbook在moectf2023中也有一道题知识点是XXE漏洞,只不过那道更明显一点。XXE漏洞全称XMLExternalEntityInjection即XML外部实体注入。XXE漏洞发生在应用程序解析XML输入时,没有禁止外部实体的加载,导致可加载恶意外部文件和代码,造成任意文件读取、......
  • 23.9.16(Java版登录界面)
    //Anadditionprogramimportjavax.swing.JOptionPane;//importclassJOptionPaneimportjavax.swing.*;importjava.awt.*;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjava.awt.image.BufferedImage;importjava.util.Random;pub......
  • NetCore 国际化最佳实践
    NetCore国际化最佳实践ASP.NETCore中提供了一些本地化服务和中间件,可将网站本地化为不同的语言文化。ASP.NETCore中我们可以使用Microsoft.AspNetCore.Localization库来实现本地化。但是默认只支持使用资源文件方式做多语言存储,很难在实际场景中使用。有没有可能支持官方资源......
  • Discuz论坛网站标题栏Powered by Discuz!版权信息如何去除或是修改?
    当我们搭建好DZ论坛网站后,为了美化网站,想把标题栏的Powered by Discuz!去除或是修改,应该如何操作呢?今天飞飞和你分享,在操作前务必把网站源码和数据库都备份到本地或是网盘。 Discuz的版权信息存在两处地方,一个是标题栏,一个是底部。一般为了美化修改个标题栏就可以了,底部的......
  • 1-连接器学习
    连接器标准比较[[国标连接器测试标准#3外观检查]]汽车电子产品的现在有很大一块是面向不同车企的兼容化设计,不管内部如何兼容,具体到外部就需要确定连接接口需求,包括安装位置、结构和电器方面的内容,一个突出的问题就是连接器的选择。汽车连接器及线束是对汽车进行电信号控制的......
  • vue--day85--<router-link>```的replace属性
    1.作用:控制路由跳转时操作浏览器历史记录的模式2.浏览器的历史记录有两种写入方式:分别为```push```和```replace```,```push```是追加历史记录,```replace```是替换当前记录。路由跳转时候默认为```push```3.如何开启```replace```模式:```<router-linkreplace.......>News</r......
  • Elasticsearch
    常用操作#创建索引PUT/users{"mappings":{"properties":{"id":{"type":"long"},"name":{"type":"keyword"},"age&q......
  • k8s安装Dashboard出现了 pod 状态为CrashLoopBackOff
    1、问题现象2、解决办法(1)先看一下pods日志信息kubectllogs-f-nkubernetes-dashboardkubernetes-dashboard-658485d5c7-h75rs(2)错误信息:Get"https://10.96.0.1:443/api/v1/namespaces/kubernetes-dashboard/secrets/kubernetes-dashboard-csrf":dialtcp10.9......
  • 代码随想录算法训练营第十天
    代码随想录算法训练营第十天|LeetCode20(有效的括号)LeetCode1047(删除字符串中的所有相邻重复项)LeetCode150(逆波兰表达式求值)20:有效的括号LeetCode20(有效的括号)方法一importjava.util.Stack;classSolution{publicbooleanisValid(Strings){......