ITPUB论坛-中国最专业的IT技术社区

 找回密码
 注册
查看: 18712|回复: 5

[讨论] oracle 11g关于权限审计的不理解

[复制链接]
论坛徽章:
0
发表于 2017-3-10 08:58 | 显示全部楼层 |阅读模式
oracle 11g 审计测试

1.开启审计(db_Extended方式)
alter system set audit_trail=db_extended scope=spfile;
shutdown immediate
startup

2.查看是否开启审计
SQL> show parameter audit

NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
audit_file_dest                      string      C:\APP\ADMINISTRATOR\ADMIN\ORC
                                                 L\ADUMP
audit_sys_operations                 boolean     FALSE
audit_trail                          string      DB_EXTENDED

3.创建测试用户a
create user a identified by a account unlock;
grant connect,resource to a;

4.查看当前库中存在的权限审计
SQL> 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

已选择23行。
可以看出,在开启审计后,系统会自动对所有用户的某些权限成功或者失败执行都会进行审计

5.为了方便查看测试结果,先把aud$截断
truncate table sys.aud$

6.在hr用户下创建几张测试表
SQL> create table hr.t1 as select * from hr.employees;
SQL> create table hr.t2 as select * from hr.employees;
SQL> create table hr.t3 as select * from hr.employees;
SQL> create table hr.t4 as select * from hr.employees;
SQL> create table hr.t5 as select * from hr.employees;



6.此时,使用a帐号登录数据库,并查看当前a用户有哪些系统权限,并测试drop any table的审计方式
sqlplus a/a
SQL> select * from user_sys_privs;

USERNAME                       PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
A                              UNLIMITED TABLESPACE                     NO

SQL> select * from role_sys_privs;

ROLE                           PRIVILEGE                                ADM
------------------------------ ---------------------------------------- ---
RESOURCE                       CREATE SEQUENCE                          NO
RESOURCE                       CREATE TRIGGER                           NO
RESOURCE                       CREATE CLUSTER                           NO
RESOURCE                       CREATE PROCEDURE                         NO
RESOURCE                       CREATE TYPE                              NO
CONNECT                        CREATE SESSION                           NO
RESOURCE                       CREATE OPERATOR                          NO
RESOURCE                       CREATE TABLE                             NO
RESOURCE                       CREATE INDEXTYPE                         NO

此时,我们尝试drop table hr.t1,因为a用户并没有drop any table的权限,所以结果肯定会失败,
SQL> show user
USER 为 "A"
SQL> drop table hr.t1;
drop table hr.t1
              *
第 1 行出现错误:
ORA-00942: 表或视图不存在

7.此时,使用sys帐号查看dba_audit_Trail表,发现没有审计条目
select username,sql_text from dba_audit_trail where username='A';

8.我们用sys用户给a帐号授予drop any table的系统权限。
grant drop any table to a;

9.此时,在使用a帐号drop table hr.t1,
SQL> drop table hr.t1;

表已删除。

10.此时,用sys帐号查看dba_audit_trail视图,会发现有记录。
SQL> select username,sql_text from dba_audit_trail where username='A';

USERNAME             SQL_TEXT
-------------------- --------------------------------------------------
A                    drop table hr.t1


结论,
对于系统权限的审计,则用户必须有对应的权限,才会被审计,否则不审计?那如何理解对权限的不成功审计呢?
对于a用户来讲,当没有drop any table权限时,他执行drop table hr.t1是不是应该作为权限使用失败而被审计呢?
所以,对whenever not SUCCESSFUL这个子句不太理解,
请大神点拨点拨

感谢大神们,百忙之中,帮我理解这个是什么意思。





认证徽章
论坛徽章:
16
2017金鸡报晓
日期:2017-01-10 15:39:05秀才
日期:2017-08-18 11:06:45秀才
日期:2017-08-18 11:02:47秀才
日期:2017-07-11 14:19:35秀才
日期:2017-04-06 18:09:28秀才
日期:2017-03-28 15:59:38秀才
日期:2017-03-28 15:11:09秀才
日期:2017-03-27 17:42:03秀才
日期:2017-03-20 13:42:20秀才
日期:2017-03-01 13:53:39
发表于 2017-3-10 09:14 | 显示全部楼层

权限审计,当用户使用了该权限则被审计,如执行grant drop any table to a,当执行了audit drop any table语句后,当用户a 要删除其他用户的表时(如drop table ...)会用到drop any table权限,故会被审计。注意用户是自己表的所有者,所以用户访问自己的表不会被审计。

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2017-3-10 09:29 | 显示全部楼层
迷倪小魏 发表于 2017-3-10 09:14
权限审计,当用户使用了该权限则被审计,如执行grant drop any table to a,当执行了audit drop any tabl ...

我就是不理解whenever not SUCCESSFUL是什么意思 ,比如说,新建b用户,不授予drop any table权限,则b drop table hr.t1时,肯定会失败,那我指定了whenever not successful后。为什么还是不记录结果呢。
那whenever not successful会在什么情况下,记录审计结果呢。

使用道具 举报

回复
认证徽章
论坛徽章:
16
2017金鸡报晓
日期:2017-01-10 15:39:05秀才
日期:2017-08-18 11:06:45秀才
日期:2017-08-18 11:02:47秀才
日期:2017-07-11 14:19:35秀才
日期:2017-04-06 18:09:28秀才
日期:2017-03-28 15:59:38秀才
日期:2017-03-28 15:11:09秀才
日期:2017-03-27 17:42:03秀才
日期:2017-03-20 13:42:20秀才
日期:2017-03-01 13:53:39
发表于 2017-3-10 09:30 | 显示全部楼层
qq1369825219 发表于 2017-3-10 09:29
我就是不理解whenever not SUCCESSFUL是什么意思 ,比如说,新建b用户,不授予drop any table权限,则b d ...

whenever successful表示操作成功以后才记录下来。
whenever not successful表示操作失败后才记录下来。

使用道具 举报

回复
论坛徽章:
0
 楼主| 发表于 2017-3-10 09:44 | 显示全部楼层
迷倪小魏 发表于 2017-3-10 09:30
whenever successful表示操作成功以后才记录下来。
whenever not successful表示操作失败后才记录下来。

我做实验时,操作失败后不记录啊。
我的意思是这个操作失败则记录的前提,比如说 drop any table权限,
1)b用户有这个权限,但是drop别的schema下的某张表失败了,则会被记录下来。
2)C用户没有这个权限,drop别的schema下的某张表,因为权限不足,而失败,则不记录下来?

可是,如果有drop any table的权限时。为什么还会drop 表失败呢?

使用道具 举报

回复
论坛徽章:
1
ITPUB社区OCM联盟徽章
日期:2017-03-10 16:36:59
发表于 2017-3-10 16:48 | 显示全部楼层
这张表被审计一般是不允许删除的

使用道具 举报

回复

您需要登录后才可以回帖 登录 | 注册

本版积分规则

SACC2017购票8.8折优惠进行时

2017中国系统架构师大会(SACC2017)将于10月19-21日在北京新云南皇冠假日酒店震撼来袭。今年,大会以“云智未来”为主题,云集国内外顶级专家,围绕云计算、人工智能、大数据、移动互联网、产业应用等热点领域展开技术探讨与交流。本届大会共设置2大主会场,18个技术专场;邀请来自互联网、金融、制造业、电商等多个领域,100余位技术专家及行业领袖来分享他们的经验;并将吸引4000+人次的系统运维、架构师及IT决策人士参会,为他们提供最具价值的交流平台。
----------------------------------------
优惠时间:2017年8月30日前

活动链接>>
TOP技术积分榜 社区积分榜 徽章 电子杂志 团队 统计 虎吧 老博客 知识索引树 读书频道 积分竞拍 文本模式 帮助
  ITPUB首页 | ITPUB论坛 | 数据库技术 | 企业信息化 | 开发技术 | 微软技术 | 软件工程与项目管理 | IBM技术园地 | 行业纵向讨论 | IT招聘 | IT文档 | IT博客
  ChinaUnix | ChinaUnix博客 | ChinaUnix论坛 | SAP ERP系统
CopyRight 1999-2011 itpub.net All Right Reserved. 北京盛拓优讯信息技术有限公司版权所有 联系我们 网站律师 隐私政策 知识产权声明
京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802021510 广播电视节目制作经营许可证:编号(京)字第1149号
  
快速回复 返回顶部 返回列表