关键字(Keyword):19c  数据库安全 新特性 Privilege Analysis 权限分析

目录:

  • 为什么需要权限分析功能

  • 各版本的功能演进

  • 如何使用Privilege Analysis(权限分析)

  • Privilege Analysis(权限分析)测试例

本文介绍Oracle 数据库的Privilege Analysis(权限分析)功能。

01

为什么需要权限分析功能

权限分析可以动态分析Oracle用户的各种权限(privileges)和角色(Role)的使用/不使用情况进行跟踪、分析、生成使用报告,从而帮助用户在满足业务需求的前提下,实现配置数据库时的权限(privileges)和角色(Role)精细化管理,提高应用程序和数据库操作的安全性。


▲来源:https://blog.csdn.net/lqx0405/article/details/52242499

参考:(以后的链接为处理过的短网址)

Release 19 Security Guidehttp://dwz.date/abwx>5 Performing Privilege Analysis to Find Privilege Use

02

各版本的功能演进

随着Oracle版本的更新,Privilege Analysis(权限分析)也不断地变化:

・版本12.1:Enterprise Edition版本中推出Privilege Analysis(权限分析),但作为Database Vault高级安全选项之一,是需要额外的授权的。・版本12.2:对该功能进行了加强

能够捕获更多的权限使用状况能够捕获权限的未使用状况能够多次运行捕获策略

・版本18c:使用该功能不再需要额外的授权・版本19c:该功能不再作为高级安全选项,作为一般安全功能。
 (该变化本质上对用户并没有什么影响)
 参考:

Release 18 Administrator's Guidehttp://dwz.date/abw7>Changes in Oracle Database Vault 12c Release 2 (12.2)>Privilege Analysis EnhancementsRelease 18 Database Licensing Information User Manualhttp://dwz.date/abwN>Table 1-10 Security    Release 19 Database New Features Guidehttp://dwz.date/abwT>Privilege Analysis Now Available in Oracle Database Enterprise Edition

03

如何使用Privilege Analysis(权限分析)

权限分析功能可以通过Oracle Enterprise Manager Cloud Control 或DBMS_PRIVILEGE_CAPTURE程序包来进行调用。
为了使用DBMS_PRIVILEGE_CAPTURE程序包,以及使用数据字典视图来确认相关信息,需要赋予用户CAPTURE_ADMIN角色。
进行权限分析的具体步骤如下:

根据业务需求,创建权限分析策略。 启用策略,开始捕获权限使用情况。 禁用策略,停止捕获权限使用情况。 生成权限分析结果。

在创建权限分析策(DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE)时,可以指定权限分析的类型以实现特定目标,权限分析的类型如下:

G_DATABASE:基于数据库范围的权限分析(SYS权限除外)。G_ROLE:基于角色(Role)的权限分析。G_CONTEXT:基于上下文(根据条件)的权限分析。G_ROLE_AND_CONTEXT:基于角色和上下文的权限分析。

参考:

Release 19 PL/SQL Packages and Types Referencehttp://dwz.date/abyu>126 DBMS_PRIVILEGE_CAPTURE

04

Privilege Analysis(权限分析)测试例

下面是Privilege Analysis(权限分析)测试例子:

--1.创建用户conn / as sysdbaset echo onset termout on--创建分析用户drop user cap_user cascade;create user cap_user identified by cap_user;grant connect,resource to cap_user;grant capture_admin to cap_user;--创建测试用户drop user test_priv cascade;create user test_priv identified by test_priv;grant connect,resource to test_priv;grant SELECT ANY TABLE to test_priv;--2.定义权限分析策略--DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE--G_DATABASE,G_ROLE,G_CONTEXT,G_ROLE_AND_CONTEXTconn cap_user/cap_user--2-1 SYS_CONTEXT 权限分析--如果存在的话删除存在的分析策略EXEC DBMS_PRIVILEGE_CAPTURE.DROP_CAPTURE ('Context Based Policy');BEGIN     DBMS_PRIVILEGE_CAPTURE.CREATE_CAPTURE(      name           => 'Context Based Policy',      description    => 'Context Based Policy test',      type           => DBMS_PRIVILEGE_CAPTURE.G_CONTEXT,      condition      => 'SYS_CONTEXT(''USERENV'', ''SESSION_USER'')=''TEST_PRIV''');    END;/--3. 启用策略BEGIN      DBMS_PRIVILEGE_CAPTURE.ENABLE_CAPTURE (       name       => 'Context Based Policy',       run_name   => 'Context_Based_Policy_first_run');    END;/---确认分析策略col NAME format a20SELECT NAME, TYPE, ENABLED FROM DBA_PRIV_CAPTURES;    SQL> SELECT NAME, TYPE, ENABLED FROM DBA_PRIV_CAPTURES;    NAME                 TYPE             E    -------------------- ---------------- -    Context Based Policy CONTEXT          Y★    ORA$DEPENDENCY       DATABASE         N--4.使用测试用户执行一些操作 (监测对象)conn test_priv/test_privselect * from dual;--5. 禁用策略conn cap_user/cap_userEXEC DBMS_PRIVILEGE_CAPTURE.DISABLE_CAPTURE ('Context Based Policy');--6.生成权限分析报告BEGIN  DBMS_PRIVILEGE_CAPTURE.GENERATE_RESULT (    name      => 'Context Based Policy',    run_name  => 'Context_Based_Policy_first_run'); END; /--7.查看权限分析报告--DBA_USED_{PRIVS|SYSPRIVS|OBJPRIVS}--DBA_UNUSED_{PRIVS|SYSPRIVS|OBJPRIVS}--7.1 使用的权限分析报告set linesize 200set pagesize 200col SYS_PRIV format a20col OBJECT_OWNER format a20col OBJECT_NAME format a30col RUN_NAME format a30SELECT SYS_PRIV, OBJECT_OWNER, OBJECT_NAME, RUN_NAME FROM DBA_USED_PRIVS WHERE USERNAME = 'TEST_PRIV';    SYS_PRIV             OBJECT_OWNER         OBJECT_NAME                    RUN_NAME    -------------------- -------------------- ------------------------------ ------------------------------                         SYS                  DUAL                           CONTEXT_BASED_POLICY_FIRST_RUN                         SYS                  DUAL                           CONTEXT_BASED_POLICY_FIRST_RUN    CREATE SESSION                                                           CONTEXT_BASED_POLICY_FIRST_RUN                         SYS                  DBMS_APPLICATION_INFO          CONTEXT_BASED_POLICY_FIRST_RUN--7.2 未使用的权限分析报告col OBJ_PRIV format a20col PATH format a60SELECT SYS_PRIV, OBJ_PRIV, OBJECT_NAME, PATH FROM DBA_UNUSED_PRIVSWHERE CAPTURE = 'Context Based Policy';    SYS_PRIV             OBJ_PRIV             OBJECT_NAME                    PATH    -------------------- -------------------- ------------------------------ -------------------------------------------------    SELECT ANY TABLE                                                         GRANT_PATH('TEST_PRIV')    SET CONTAINER                                                            GRANT_PATH('TEST_PRIV', 'CONNECT')    CREATE INDEXTYPE                                                         GRANT_PATH('TEST_PRIV', 'RESOURCE')    CREATE OPERATOR                                                          GRANT_PATH('TEST_PRIV', 'RESOURCE')    CREATE TYPE                                                              GRANT_PATH('TEST_PRIV', 'RESOURCE')    CREATE TRIGGER                                                           GRANT_PATH('TEST_PRIV', 'RESOURCE')    CREATE PROCEDURE                                                         GRANT_PATH('TEST_PRIV', 'RESOURCE')    CREATE SEQUENCE                                                          GRANT_PATH('TEST_PRIV', 'RESOURCE')    CREATE CLUSTER                                                           GRANT_PATH('TEST_PRIV', 'RESOURCE')    CREATE TABLE                                                             GRANT_PATH('TEST_PRIV', 'RESOURCE')                         READ                 JSON$USER_COLLECTION_METADATA  GRANT_PATH('TEST_PRIV', 'RESOURCE', 'SODA_APP')                         EXECUTE              DBMS_SODA_ADMIN                GRANT_PATH('TEST_PRIV', 'RESOURCE', 'SODA_APP')                         EXECUTE              DBMS_SODA_USER_ADMIN           GRANT_PATH('TEST_PRIV', 'RESOURCE', 'SODA_APP')    13 rows selected.

05

其他

相关阅读:

快速搞懂19c 数据库安全新特性 (一)Schema Only Accounts

【常用命令】监视数据库的用户登录和注销会话信息

专注于技术不限于技术!

用碎片化的时间,一点一滴地提高数据库技术和个人能力。

欢迎关注!

用户没有create session权限_快速搞懂Oracle 19c安全新特性 (二)Privilege Analysis(权限分析)...相关推荐

  1. 容量法和库仑法的异同点_快速搞懂「活性污泥法」,主要把握这4点!

    本篇讲活性污泥法,初识活性污泥主要把握好以下4点内容. 01 微生物和活性污泥是一回事儿不? 这两个概念有一定相似性.重合性,但又不尽相同. 微生物我们前面讲过了,就是肉眼不可见的微小生命体:而活性污 ...

  2. 一文快速搞懂Kudu到底是什么

    文章目录 引言 文章传送门: Kudu 介绍 背景介绍 新的硬件设备 Kudu 是什么 Kudu 应用场景 Kudu 架构 数据模型 分区策略 列式存储 整体架构 Kudu Client 交互 Kud ...

  3. 5个品牌案例,6张优质模板,帮你快速搞懂「商业模式画布」!

    新入职.新行业,新人如何快速搞懂它的业务模式?新领域.新业务,投资人如何快速搞明白一个公司?新商机.新模式,创业者如何快速一个业务的商业前景? 推荐大家使用商业模式画布,它可以让你轻松看透商业模式.对 ...

  4. 快速搞懂平面设计视觉思维的窍门

    在这个商业氛围很浓的社会中,各种设计海报让人眼花缭乱,如何脱颖而出?需要靠设计的视觉冲击力.所以做平面设计中,要掌握好视觉设计思维,才能更胜一筹.这里给大家讲几个小窍门,让你们快速搞懂平面设计视觉思维 ...

  5. 一文快速搞懂对95%置信区间的理解

    一文快速搞懂对95%置信区间的理解 综合知乎上各大神的解答和网络资料得到本文对95%置信区间的理解 先给出结论 最常出现的对置信区间的错误理解: 在95%置信区间内,有95%的概率包括真实参数  (错 ...

  6. zhs16gbk对应mysql_[Oracle] 彻底搞懂Oracle字符集

    基本概念字符集(Character set):是一个系统支持的所有抽象字符的集合.字符是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.常见的字符集有ASCII,ZHS16GB231 ...

  7. 彻底搞懂oracle字符集,搞懂oracle字符集

    搞懂oracle字符集 作为一个ORACLE DBA,在工作中会经常处理由于字符集产生的一些问题.但是当真正想写一些这方面的东西时,却突然又没有了头绪.发了半天呆,还是决定用两个字符集方面的例子作为切 ...

  8. factorybean 代理类不能按照类型注入_彻底搞懂依赖注入(一)Bean实例创建过程

    点击上方"Java知音",选择"置顶公众号" 技术文章第一时间送达! 上一章介绍了Bean的加载过程(IOC初始化过程),加载完成后,紧接着就要用到它的依赖注入 ...

  9. python协程详解_彻底搞懂python协程-第一篇(关键词1-4)

    任何复杂的概念或系统都不是凭空出现的,我们完全可以找到它的演化历程,寻根究底终会发现,其都是在一系列并不那么复杂的简单组件上发展演化而来! by 落花僧 本文通过一系列关键概念,逐步递进理解协程. 0 ...

  10. 快速搞懂Lombok使用与原理

    1 简介 Lombok是一款好用顺手的工具,就像Google Guava一样,在此予以强烈推荐,每一个Java工程师都应该使用它.Lombok是一种Java™实用工具,可用来帮助开发人员消除Java的 ...

最新文章

  1. 如何更改linux文件目录拥有者及用户组
  2. 9.9学python靠谱吗-9成以上老师都不会告诉你的,关于编程的秘密,看完以后恍然大悟...
  3. 【Linux】2.Linux source命令
  4. ASP.NET初识4
  5. CodeForces 525C Ilya and Sticks 贪心
  6. 使用Spring Security 3.1保护RESTful Web服务,第3部分
  7. 材料凝固计算机模拟,金属基复合材料凝固过程计算机模拟Ⅲ.pdf
  8. 数据结构之 栈与队列(一)
  9. git提交了不需要的文件夹或者文件怎么办
  10. Android Studio的怪错:AndroidManifest.xml unresolve symbol package/connot resolve symbol/Animations
  11. 【06年博文搬家】查看本机的瑞星序列号
  12. 如何在CAD中插入一个自定义对象?
  13. 基于HTML5的在线绘图工具,基于HTML5 Canvas和jQuery 的绘图工具的实现
  14. 通过WIFI(不用数据线)连接Android手机调试
  15. Python编程:Python2和Python3环境下re正则匹配中文
  16. [全]win7成功干掉win8--一个小U盘引发的血案(U盘在win8下装win7的方法)Lenovo V580c
  17. 如何分辨IP地址的类型
  18. 2022-2028全球肿瘤癌症药物行业调研及趋势分析报告
  19. idea启动不了,报错Warexploded:Artifact is not deployed. Press ‘Deploy’ to start deployment
  20. iphone4 美版电信烧号6.1.3电话号码括号问题解决办法

热门文章

  1. gtid mysql failover_说GTID - Failover and Scaleout
  2. 打开终端报错:bash: /某路径/bashrc: No such file or directory
  3. Flutter进阶第10篇: 本地存储,封装本地存储类,实现最简单的状态管理
  4. Futter基础第6篇: 实现网格布局【GridView、GridView.count、GridView.builder】
  5. RK3288_Android7.1的gpio按键驱动浅析
  6. 迅为IMX6Q PLUS开发板烧写Android6.0系统方法
  7. es6 语法 (类与对象)
  8. java 27 - 7 反射之 通过反射越过泛型检查
  9. 某里巴巴Java工程师常规面试题以及解答
  10. RAID介绍及RAID5配置实例