iis服务器助手广告广告
返回顶部
首页 > 资讯 > 数据库 >Oracle标准数据库审核
  • 835
分享到

Oracle标准数据库审核

2024-04-02 19:04:59 835人浏览 八月长安
摘要

oracle标准数据库审核可以对一般用户(不包括SYS)的各种权限操作进行审核和跟踪。 一、标准数据库审核的基本方法 1、开启标准数据库审核 初始化参数au

oracle标准数据库审核可以对一般用户(不包括SYS)的各种权限操作进行审核和跟踪。


一、标准数据库审核的基本方法


1、开启标准数据库审核


初始化参数audit_trail是一个静态参数,该参数确定如何启用审核,不同的值表示是否开启审核以及如何记录审核。

该参数可以设定为如下的值:

none或flase(10g为默认):不审核;

db或true(11g为默认):审核结果记录到数据库表sys.aud$,可以通过视图dba_audit_trail来查看结果;

os:审核结果记录到操作系统文件中,Unix在audit_file_dest参数中指定,windows则在应用程序日志中(事件查看器eventvwr);

db_extended:与db大致相同,但审核结果包含了具有绑定变量的sql语句;

xml:与os大致相同,但使用xml来标记;

xml_extended:与xml大致相同,但审核结果包含了具有绑定变量的SQL语句。


2、指定审核选项


使用audit命令可以配置数据库审核,标准数据库审核包含以下几类:


1)系统权限审核


审核系统权限的操作,如

audit create any table;

audit create any trigger;

审核某用户的系统权限操作,如

audit select any table by scott;

访问自己的表时不会做审核。

审核用户的创建和删除

audit create user, drop user;

查开启的系统权限审核,通过数据字典dba_priv_audit_opts,11g默认会开启以下审核

col user_name for a20

col proxy_name for a20

col privilege for a30

col success for a20

col failure for a20

select * from dba_priv_audit_opts;


USER_NAME       PROXY_NAME      PRIVILEGE                                SUCCESS    FAILURE

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

                                CREATE EXTERNAL JOB                      BY ACCESS  BY ACCESS

                                CREATE ANY JOB                           BY ACCESS  BY ACCESS

                                GRANT ANY OBJECT PRIVILEGE               BY ACCESS  BY ACCESS

                                EXEMPT ACCESS POLICY                     BY ACCESS  BY ACCESS

                                CREATE ANY LIBRARY                       BY ACCESS  BY ACCESS

                                GRANT ANY PRIVILEGE                      BY ACCESS  BY ACCESS

                                DROP PROFILE                             BY ACCESS  BY ACCESS

                                ALTER PROFILE                            BY ACCESS  BY ACCESS

                                DROP ANY PROCEDURE                       BY ACCESS  BY ACCESS

                                ALTER ANY PROCEDURE                      BY ACCESS  BY ACCESS

                                CREATE ANY PROCEDURE                     BY ACCESS  BY ACCESS

                                ALTER DATABASE                           BY ACCESS  BY ACCESS

                                GRANT ANY ROLE                           BY ACCESS  BY ACCESS

                                CREATE PUBLIC DATABASE LINK              BY ACCESS  BY ACCESS

                                DROP ANY TABLE                           BY ACCESS  BY ACCESS

                                ALTER ANY TABLE                          BY ACCESS  BY ACCESS

                                CREATE ANY TABLE                         BY ACCESS  BY ACCESS

                                DROP USER                                BY ACCESS  BY ACCESS

                                ALTER USER                               BY ACCESS  BY ACCESS

                                CREATE USER                              BY ACCESS  BY ACCESS

                                CREATE SESSioN                           BY ACCESS  BY ACCESS

                                AUDIT SYSTEM                             BY ACCESS  BY ACCESS

                                ALTER SYSTEM                             BY ACCESS  BY ACCESS


2)对象权限审核


对所有用户(不包括sys,sys是不审核的),如

aduit alter, delete, drop, insert on scott.emp;

对某个用户,如

audit select on hr.employees by scott;

对所有操作,如

audit all on hr.employees;

查开启的对象审核,通过数据字典dba_obj_audit_opts,默认是都没有开启

select * from dba_obj_audit_opts;


OWNER      OBJECT_NAME     OBJECT_TYPE     ALT   AUD   COM   DEL   GRA   IND   INS   LOC   REN   SEL   UPD   REF EXE   CRE   REA   WRI   FBK

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


3)语句审核


如审核表的所有DDL操作

audit table;

查开启的语句审核,通过数据字典dba_stmt_audit_opts,11g默认会开启以下审核,其中也包含了上述属于系统权限的审核

col user_name for a20

col proxy_name for a20

col audit_option for a30

col success for a20

col failure for a20

select * from dba_stmt_audit_opts;


USER_NAME       PROXY_NAME      AUDIT_OPTION                             SUCCESS    FAILURE

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

                                ALTER SYSTEM                             BY ACCESS  BY ACCESS

                                SYSTEM AUDIT                             BY ACCESS  BY ACCESS

                                CREATE SESSION                           BY ACCESS  BY ACCESS

                                CREATE USER                              BY ACCESS  BY ACCESS

                                ALTER USER                               BY ACCESS  BY ACCESS

                                DROP USER                                BY ACCESS  BY ACCESS

                                PUBLIC SYNONYM                           BY ACCESS  BY ACCESS

                                DATABASE LINK                            BY ACCESS  BY ACCESS

                                ROLE                                     BY ACCESS  BY ACCESS

                                PROFILE                                  BY ACCESS  BY ACCESS

                                CREATE ANY TABLE                         BY ACCESS  BY ACCESS

                                ALTER ANY TABLE                          BY ACCESS  BY ACCESS

                                DROP ANY TABLE                           BY ACCESS  BY ACCESS

                                CREATE PUBLIC DATABASE LINK              BY ACCESS  BY ACCESS

                                GRANT ANY ROLE                           BY ACCESS  BY ACCESS

                                SYSTEM GRANT                             BY ACCESS  BY ACCESS

                                ALTER DATABASE                           BY ACCESS  BY ACCESS

                                CREATE ANY PROCEDURE                     BY ACCESS  BY ACCESS

                                ALTER ANY PROCEDURE                      BY ACCESS  BY ACCESS

                                DROP ANY PROCEDURE                       BY ACCESS  BY ACCESS

                                ALTER PROFILE                            BY ACCESS  BY ACCESS

                                DROP PROFILE                             BY ACCESS  BY ACCESS

                                GRANT ANY PRIVILEGE                      BY ACCESS  BY ACCESS

                                CREATE ANY LIBRARY                       BY ACCESS  BY ACCESS

                                EXEMPT ACCESS POLICY                     BY ACCESS  BY ACCESS

                                GRANT ANY OBJECT PRIVILEGE               BY ACCESS  BY ACCESS

                                CREATE ANY JOB                           BY ACCESS  BY ACCESS

                                CREATE EXTERNAL JOB                      BY ACCESS  BY ACCESS


4)其它审核配置


审核会话登录

audit session;

这与审核create session权限的使用效果相同。

取消审核,通过noaudit命令指定

noaudit session;

noaudit all on scott.emp;

审核成功的操作,通过whenever successful选项指定,如审核表的成功插入

audit insert on scott.emp whenever successful;

审核不成功的操作,通过whenever not successful选项指定,如审核失败的会话登录

audit session whenever not successful;

默认情况下是审核所有的操作,不论成功与否。

会话级别上的审核,通过by session选项指定

audit update on scott.emp by session;

操作级别上的审核,通过by access选项指定

audit update on scott.emp by access;

对象权限审核默认是by session

系统权限审核默认是by access


3、查看审核记录


如果审核针对数据库(audit_trail=db或db_extended),则审核记录写入数据字典表sys.aud$中,虽然可以直接查看,但通过建立在其上的视图来查看将更加方便。

常用的视图是dba_audit_trail,其常用列的解释如下:

os_username:执行操作的用户的操作系统用户名

username:执行操作的用户的Oracle用户名

userhost:运行用户进程的计算机名称

timestamp:审核事件的发生时间

owner,obj_name:受影响对象的模式和名称

action,action_name:审核的操作,操作代码action的对照含义可查数据字典表audit_actions

priv_used:使用的系统权限

sql_text:执行的语句

如果没有表aud$及视图dba_audit_trail,则需要执行审核相关的数据字典表的安装脚本,安装后要重启数据库,安装脚本位于

%ORACLE_HOME%\rdbms\admin\cataudit.sql

其它审核视图显示了dba_audit_trail视图的一个子集:

dba_audit_object

dba_audit_statement

dba_audit_session


二、标准数据库审核实验


1、创建实验用表

create table scott.emp1 as select * from scott.emp;

grant all on scott.emp1 to hr;


2、启用审核

audit all on scott.emp1 by access;

audit table;

alter system set audit_sys_operations=true scope=spfile;

alter system set audit_trail='db_extended' scope=spfile;

重启数据库实例

shutdown immediate

startup

实验前可先清除审核结果表的所有记录

truncate table sys.aud$;


3、进行sysdba的活动,并查看审核结果

以sysdba身份登录并操作

select * from dba_users;

select * from scott.emp1;

create user audr1 identified by audr1;

drop user audr1;

create table scott.emp2 as select * from scott.emp1;

select * from scott.emp2;

drop table scott.emp2 purge;

查看sysdba的审核结果,由于开启了sysdba审核,所以可以在操作系统文件和日志中看到所有操作记录。Unix查看audit_file_dest指定的目标文件,Windows通过事件查看器eventvwr查看应用程序日志。另外可以看到SYS管理员的操作不会记入aud$中,视图dba_audit_trail没有相关记录。


4、用system用户登录操作,并查看审核结果

select * from scott.emp;

select * from scott.emp1;

create user audr1 identified by audr1;

grant connect to audr1;

create table audr1.t1(n number);

select * from audr1.t1;

drop table audr1.t1 purge;

drop user audr1;

退出system的登录

查看审核结果

col os_username for a20

col username for a20

col userhost for a20

col owner for a10

col obj_name for a20

col action_name for a20

col priv_used for a20

col sql_text for a50

select os_username, username, userhost, timestamp, owner, obj_name, action, action_name, priv_used, sql_text from dba_audit_trail order by timestamp desc;


OS_USERNAME          USERNAME             USERHOST             TIMESTAMP           OWNER      OBJ_NAME                 ACTION ACTION_NAME          PRIV_USED            SQL_TEXT

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

Administrator        SYSTEM               WORKGROUP\MYPC       2017-09-20 10:36:05                                101 LOGoFF

Administrator        SYSTEM               WORKGROUP\MYPC       2017-09-20 10:35:59            AUDR1                53 DROP USER            DROP USER            drop user audr1

Administrator        SYSTEM               WORKGROUP\MYPC       2017-09-20 10:35:49 AUDR1      T1                   12 DROP TABLE           DROP ANY TABLE       drop table audr1.t1 purge

Administrator        SYSTEM               WORKGROUP\MYPC       2017-09-20 10:35:32 AUDR1      T1                    1 CREATE TABLE         CREATE ANY TABLE     create table audr1.t1(n number)

Administrator        SYSTEM               WORKGROUP\MYPC       2017-09-20 10:35:24            CONNECT                     114 GRANT ROLE           GRANT ANY ROLE       grant connect to audr1

Administrator        SYSTEM               WORKGROUP\MYPC       2017-09-20 10:35:14            AUDR1                51 CREATE USER          CREATE USER          create user audr1 identified by *****

Administrator        SYSTEM               WORKGROUP\MYPC       2017-09-20 10:35:04 SCOTT      EMP1                  3 SELECT               SELECT ANY TABLE     select * from scott.emp1

Administrator        SYSTEM               WORKGROUP\MYPC       2017-09-20 10:34:33                                100 LOGON                CREATE SESSION


由于没有对表scott.emp加入审核,因此对它的查询未计入表中,而会话的登入登出、建表、删表、授权是默认开启的系统权限审核,因此这些操作被记入表中,同样对表audr1.t1的查询也不会加入审核。


5、清空aud$记录,在sys下创建用户audr1,并分别用audr1和hr用户登录操作,查看审核结果

sys的操作

create user audr1 identified by audr1;

grant connect to audr1;

audr1用户登录操作

select * from scott.emp1;

由于没有给audr1访问scott.emp1的权限,因此以上查询将失败

audr1用户退出登录

hr用户登录操作

select * from scott.emp1;

update scott.emp1 set sal=2000 where empno=7369;

commit;

update scott.emp1 set sal=2500 where empno=7369;

rollback;

hr用户退出登录

查看审核记录

col os_username for a20

col username for a20

col userhost for a20

col owner for a10

col obj_name for a20

col action_name for a20

col priv_used for a20

col sql_text for a50

select os_username, username, userhost, timestamp, owner, obj_name, action, action_name, priv_used, sql_text from dba_audit_trail order by timestamp desc;


OS_USERNAME          USERNAME             USERHOST             TIMESTAMP           OWNER      OBJ_NAME                 ACTION ACTION_NAME          PRIV_USED            SQL_TEXT

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

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:42:29                                101 LOGOFF

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:45:33 SCOTT      EMP1                  6 UPDATE                                    update scott.emp1 set sal=2500 where empno=7369

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:42:17 SCOTT      EMP1                  6 UPDATE                                    update scott.emp1 set sal=2000 where empno=7369

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:42:09 SCOTT      EMP1                  3 SELECT                                    select * from scott.emp1

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:41:49                                100 LOGON                CREATE SESSION

Administrator        AUDR1                WORKGROUP\MYPC       2017-09-20 10:41:41                                101 LOGOFF

Administrator        AUDR1                WORKGROUP\MYPC       2017-09-20 10:41:29 SCOTT      EMP1                  3 SELECT                                    select * from scott.emp1

Administrator        AUDR1                WORKGROUP\MYPC       2017-09-20 10:41:01                                100 LOGON                CREATE SESSION


由于默认是操作不论成功与否都会纳入审核,因此audr1用户失败的查询也被记录,commit和rollback语句并没有记录,不管执行的语句最后是被提交还是回滚,更新操作总是被审核的。


6、取消对象审核

noaudit all on scott.emp1;

hr用户再次登录操作

select * from scott.emp1;

hr用户退出登录

查看审核记录,确认审核只有用户的登入登出,其它已取消。如果要将会话的登入登出记录也取消,则执行noaudit session,但这样一来,默认的系统权限审核将不再包括该项,除非执行audit session重新加入。


7、清空aud$记录,改为会话级别的审核,并查看结果

audit all on scott.emp1 by session;

再次以hr用户登录并操作

select * from scott.emp1;

update scott.emp1 set sal=800 where empno=7369;

commit;

hr用户退出登录

查看审核记录

col os_username for a20

col username for a20

col userhost for a20

col owner for a10

col obj_name for a20

col action_name for a20

col priv_used for a20

col sql_text for a50

select os_username, username, userhost, timestamp, owner, obj_name, action, action_name, priv_used, sql_text from dba_audit_trail order by timestamp desc;


OS_USERNAME          USERNAME             USERHOST             TIMESTAMP           OWNER      OBJ_NAME                 ACTION ACTION_NAME          PRIV_USED            SQL_TEXT

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

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:54:55                                101 LOGOFF

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:54:44 SCOTT      EMP1                103 SESSION REC                               update scott.emp1 set sal=800 where empno=7369

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:54:36 SCOTT      EMP1                103 SESSION REC                               select * from scott.emp1

Administrator        HR                   WORKGROUP\MYPC       2017-09-20 10:54:29                                100 LOGON                CREATE SESSION


比较可知,操作级别的审核明确记录了action_name为select、update等,而会话级别的审核action_name只标明为session rec,但sql_text仍记录了会话中每一步操作的SQL语句。


8、取消审核,清理恢复

noaudit all on scott.emp1;

drop user audr1;

drop table scott.emp1 purge;

alter system set audit_trail=false scope=spfile;

alter system set audit_sys_operations=false scope=spfile;

重启数据库实例

清空aud$记录


您可能感兴趣的文档:

--结束END--

本文标题: Oracle标准数据库审核

本文链接: https://www.lsjlt.com/news/46367.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Oracle标准数据库审核
    Oracle标准数据库审核可以对一般用户(不包括SYS)的各种权限操作进行审核和跟踪。 一、标准数据库审核的基本方法 1、开启标准数据库审核 初始化参数au...
    99+
    2022-10-18
  • Oracle数据库SQL审计
    在我们日常的工作中,一些安全性的要求高的数据库需要增加审计操作,哪个用户什么时间做了什么操作。 1.打开数据库的审计 alter system set audit_sys_operations=TRUE s...
    99+
    2022-10-18
  • ORACLE 数据库审计详解
    http://guestart.blog.51cto.com/1510660/1896340 http://www.itpub.net/thread-454252-1-1.html https:...
    99+
    2022-10-18
  • Python标准库之数据库 sqlite3
    目录1、创建数据库 2、插入数据3、查询4、更新与删除Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配P...
    99+
    2022-11-12
  • Python标准库14 数据库 (sqlite3)
    Python自带一个轻量级的关系型数据库SQLite。这一数据库使用SQL语言。SQLite作为后端数据库,可以搭配Python建网站,或者制作有数据存储需求的工具。SQLite还在其它领域有广泛的应用,比如HTML5和移动端。Python...
    99+
    2023-06-02
  • Oracle数据库标准版与企业版的区别
    转载路径为:http://www.itpub.net/thread-2067419-1-1.html QUESTION: Oracle标准版和企业版相比较而言,在价格上是便宜多了。(生产用途)在这弱弱的问...
    99+
    2022-10-18
  • 如何查看Oracle数据库是企业版还是标准版
    这篇文章主要为大家展示了“如何查看Oracle数据库是企业版还是标准版”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“如何查看Oracle数据库是企业版还是标准版...
    99+
    2022-10-18
  • Python数据标准化
    目录 一.数据标准化方式 1.实现中心化和正态分布的Z-Score 2.实现归一化的Max-Min 3.用于稀疏数据的MaxAbs 4.针对离群点的RobustScaler 二.Python针对以上几种标准化方法处理数据 三.总结   ...
    99+
    2023-09-10
    python sklearn
  • Oracle数据库标准的SYSAUX表空间清理方法是什么
    这篇文章将为大家详细讲解有关Oracle数据库标准的SYSAUX表空间清理方法是什么,文章内容质量较高,因此小编分享给大家做个参考,希望大家阅读完这篇文章后对相关知识有一定的了解。概述SYSAUX表空间被称...
    99+
    2022-10-19
  • Mysql数据库审计
    Mysql数据库审计  简介    数据库审计(简称DBAudit)能够实时记录网络上的数据库活动,对数据库操作进行细粒度审计的合规性管理,对数据库遭受到的风险...
    99+
    2022-10-18
  • 数据库审计---首选Netwrix的SQLsever数据库 审计工具
    数据库审计----首选Auduit for Netwrix SQLSever 数据库审计概念审计,英文称之为“audit”,检查、验证目标的准确性和完整性,用以防止虚假数据和欺骗行为,以及是否符合...
    99+
    2022-10-18
  • java连接数据库(jdbc)的标准规范
    java连接数据库的标准规范 JDBC全称:java database connectivity ,是sun公司提供的Java连接数据库的标准规范。 localhost和127.0.0.1 都是表示当前电脑 1、oracle Oracl...
    99+
    2019-05-09
    java连接数据库(jdbc)的标准规范
  • 删除织梦所有待审核稿件sql语句(未审核数据将全部删除)
    先提醒一下 archives是dedecms主表 addonarticle 新闻信息表 在dede后台"系统-》SQL命令行工具"运行下以命令即可(注意,运行后未审核的数据全被删除,小心使用) 代码如...
    99+
    2022-06-12
    待审核稿件 sql语句
  • python标准库有哪些函数
    Python标准库包含了许多内置函数和模块,提供了许多常用的功能和工具。以下是一些常用的Python标准库函数:1、os模块:提供了许多与操作系统交互的功能。例如:os.path.abspath(path):返回路径的绝对路径。os.pat...
    99+
    2023-10-25
    python python标准库
  • python三种数据标准化
    数据变换是数据准备的重要环节,它通过数据平滑、数据聚集、数据概化和规范化等方式将数据转换成适用于数据挖掘的形式。常见的变换方法: 1.数据平滑:去除数据中的噪声,将连续数据离散化。这里可以采用分箱、聚...
    99+
    2023-09-25
    python
  • sql是不是层次数据库的标准语言
    这篇文章将为大家详细讲解有关sql是不是层次数据库的标准语言,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。sql语言不是层次数据库的标准语言,是关系数据库的标准语言。结构...
    99+
    2022-10-18
  • 如何规划数据库环境标准化管理
    这篇文章主要介绍“如何规划数据库环境标准化管理”,在日常操作中,相信很多人在如何规划数据库环境标准化管理问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”如何规划数据库环境标准化...
    99+
    2022-10-18
  • 数据库审计是什么
    本篇内容主要讲解“数据库审计是什么”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“数据库审计是什么”吧!数据库审计工具及其应用程序有四种基本平台可以用于创建、收集和分析数据库审计,它们是:本地数据...
    99+
    2023-06-17
  • MySQL配置数据库审计
    MySQL配置数据库审计 1 背景2 环境3 准备工作4 安装审计4.1 解压审计包4.2 查看数据库插件目录4.3 安装数据库审计插件4.3.1 复制到插件目录4.3.2 修改插件权限4.3.3 设置审计参数4.3.4 修改数据库...
    99+
    2023-08-17
    数据库 mysql java
  • Linux下安装oracle数据库内核参数说明
    在安装数据库时需要配置以下内核参数: fs.aio-max-nr = 1048576 fs.file-max = 6815744 kernel.shmall = 2097152 kernel.shmmax ...
    99+
    2022-10-18
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作