导读:在诊断Oracle数据库问题时,Oracle支持服务人员可能会指示您执行某些诊断操作。有些诊断操作是无害的。但是,如果不正确地执行其他操作,可能会产生不利影响。为了控制和监控执行此类诊断操作的人员,Oracle Database 20 引入了诊断控制的安全控制措施。

在诊断Oracle数据库问题时,Oracle支持服务人员可能会指示您执行某些诊断操作。有些诊断操作是无害的。但是,如果不正确地执行其他操作,可能会产生不利影响。为了控制和监控执行此类诊断操作的人员,Oracle Database 20 引入了诊断控制的安全控制措施。

这一改进是通过参数 DIAGNOSTICS_CONTROL 来引入的:

潜在的不安全诊断操作在数据库中被内部识别出来。这些操作包括用ALTER SESSION或ALTER SYSTEM语句设置某些调试事件和调试操作。例如。

ALTER SESSION SET EVENTS '1357 trace name context forever, level 2';ALTER SYSTEM SET EVENTS 'trace[vos]';

用户可以通过被授予ENABLE DIAGNOSTICS系统权限,或被授予DBA角色,或以SYSDBA身份认证,来授权用户执行潜在的不安全诊断操作。

DIAGNOSTICS_CONTROL初始化参数可以让你指定当一个未经授权的用户试图执行这些诊断操作时,数据库如何响应,可能的参数值是:

  1. ERROR: 当未经授权的用户尝试执行一个潜在的不安全的诊断操作时,该尝试以错误 ORA-01031: 权限不足而失败。

  2. WARNING:当未经授权的用户尝试执行潜在的不安全诊断操作时,尝试成功,但警告被写入警告日志。

  3. IGNORE:当未经授权的用户尝试执行潜在的不安全诊断操作时,尝试成功,不会出现错误信息或警告。这是默认情况。

接下来让我们通过测试展示一下这个参数控制的效果。

首先创建一个测试用户:

Copyright (c) 1982, 2020, Oracle.  All rights reserved.
Last Successful login time: Fri Apr 24 2020 02:51:08 +00:00
Connected to:Oracle Database 20c Enterprise Edition Release 20.0.0.0.0 - ProductionVersion 20.2.0.0.0
SQL> show userUSER is "EYGLE"SQL> create user enmo identified by enmo;
User created.
SQL> grant connect,resource to enmo;
Grant succeeded.
SQL> grant alter session to enmo;
Grant succeeded.

然后设置参数,以下在 CDB 以 SYS 用户执行:

SQL> show userUSER is "SYS"
SQL> alter system set diagnostics_control=ERROR;
System altered.

此时,在新建立的用户 ENMO 上执行 ALTER SESSION 修改诊断参数,可以看到终端直接收到了 ORA-01031 错误,阻止了用户执行:

SQL> connect enmo/enmo@enmoConnected.
SQL> ALTER SESSION SET EVENTS '1357 trace name context forever, level 2';ERROR:ORA-01031: insufficient privilegesORA-49100: Failed to process event statement [1357 trace name context forever,level 2]

接下来在 CDB 修改参数:

SQL> alter system set diagnostics_control=WARNING;System altered.

注意,修改参数的动作会记入告警日志:

SQL> ! tail -4 alert*2020-04-24T02:52:25.957547+00:00ALTER SYSTEM SET diagnostics_control='ERROR' SCOPE=BOTH;2020-04-24T02:55:51.341360+00:00ALTER SYSTEM SET diagnostics_control='WARNING' SCOPE=BOTH;

此时回到 ENMO 用户的会话,重复执行 ALTER SESSION 可以看到执行成功:

SQL> ALTER SESSION SET EVENTS '1357 trace name context forever, level 2';
Session altered.

观察告警日志,可以看到详细的信息都被记录下来,包括执行的用户、时间 等,但是操作被执行:

SQL> ! tail -6 alert*
2020-04-24T02:57:49.719833+00:00
ALTER SYSTEM SET diagnostics_control='WARNING' SCOPE=BOTH;
2020-04-24T02:57:54.962153+00:00
ENMO(4):User 'ENMO' has set the following debug-event(s) on the event-group 'session':
ENMO(4):'1357 trace name context forever, level 2'
ENMO(4):To disable such messages, refer to documentation about parameter 'diagnostics_control'.

最后,在修改DIAGNOSTICS_CONTROL初始化参数时,请注意以下注意事项。

  1. 要使用ALTER SYSTEM命令修改这个参数,必须通过认证为SYSDBA。

  2. 在Oracle RAC环境中,目前无法通过在ALTER SYSTEM SET语句中指定SID子句在远程实例上修改此参数。

显然,通过 DIAGNOSTICS_CONTROL ,Oracle 让看不到、摸不着的诊断操作,变得有迹可循,可以跟踪,云和恩墨认为,这是 Oracle 细致入微的又一体现,对数据库安全进行了有益的管控和增强。

参考:https://docs.oracle.com/en/database/oracle/oracle-database/20/refrn/DIAGNOSTICS_CONTROL.html

墨天轮原文链接:https://www.modb.pro/db/24490(复制到浏览器中打开或者点击“阅读原文”)

推荐阅读:144页!分享珍藏已久的数据库技术年刊

数据和云

ID:OraNews

如有收获,请划至底部,点击“在看”,谢谢!

点击下图查看更多 ↓

云和恩墨大讲堂 | 一个分享交流的地方

长按,识别二维码,加入万人交流社群

请备注:云和恩墨大讲堂

  点个“在看”

你的喜欢会被看到❤

Oracle 20c 新特性:DIAGNOSTICS_CONTROL 对诊断事件的安全管控相关推荐

  1. 资源放送丨《 先睹为快!Oracle 20c新特性解析》PPT视频

    前段时间,墨天轮邀请到了云和恩墨CTO.ACDU核心专家."Oracle百科全书" 杨廷琨 老师分享<先睹为快!Oracle 20c新特性解析>,在这里我们共享一下PP ...

  2. Oracle 20c 新特性:表空间缺省加密算法 TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM

    导读:在 Oracle 20c中,新增加的初始化化参数,让我们可以获得设置表空间缺省加密算法的能力,这个新的参数是:TABLESPACE_ENCRYPTION_DEFAULT_ALGORITHM . ...

  3. Oracle 20c 新特性:持久化内存数据库 - Persistent Memory Database

    导读:随着硬件技术的不断进步,PMEM (Persistent Memory)已经足够成熟,开始进入到数据库加速领域,在 DRAM 和 Flash 之间提供能更强的 IO 层支撑.自 Oracle 2 ...

  4. Oracle 20c 新特性:SQL 宏支持(SQL Macro)Scalar 和 Table 模式

    SQL宏特性,允许开发人员将复杂的处理通过宏定义实现,随后可以在 SQL 中任何位置调用宏.这个特性的实现类似于12c中实现的 Function in SQL 特性. 在 Oracle Databas ...

  5. Oracle 20c 新特性:缺省的只读 Oracle HOME 支持

    墨墨导读:在 20c 之前,缺省的 ORACLE_HOME 布局将 ORACLE_HOME.ORACLE_BASE_HOME 和 ORACLE_BASE_CONFIG 合并到一个位置.从 20c 开始 ...

  6. Oracle 20c 新特性:XGBoost 机器学习算法和 AutoML 的支持

    墨墨导读:XGBoost是一个高效.可扩展的机器学习算法,用于回归和分类(regression and classification),使得XGBoost Gradient Boosting开源包可用 ...

  7. Oracle 20c 新特性:自动的区域图 - Automatic Zone Maps

    导读:Zone Maps 是一个独立的访问结构,可以为表独立建立.在表和索引扫描期间,区块图可以根据表列上的谓词来修剪表的磁盘块和分区表的潜在完整分区.区块映射可以使用 Attribute Clust ...

  8. Oracle 20c 新特性详解:SQL Macro 宏 SCALAR / TABLE 模式带来的敏捷和便利

    导读:在 Oracle 20c 中,SQL的宏支持 - SQL Macro 为 SQL 开发带来了进一步的敏捷和便利,在这篇文章中,我们来详细了解一下 SQL Macro 的特性用法. 以下是概要介绍 ...

  9. Oracle 20c 新特性:表达式参数值 Expressions Parameter Values

    导读:从Oracle数据库20c开始,您可以指定一个表达式作为某些初始化参数的值,这使得数据库能够根据环境变化自动调整参数值.这在 Oracle Autonomous 数据库环境中特别有用. 在 Or ...

最新文章

  1. 基于SSM实现考研信息管理平台系统
  2. 【Android 应用开发】Android屏幕适配解析 - 详解像素,设备独立像素,归一化密度,精确密度及各种资源对应的尺寸密度分辨率适配问题
  3. SQL Server: Datetime,Datetime2
  4. c++ const static
  5. 系统架构性能优化思路
  6. 区块链——据说现在这玩意很火?
  7. 计算机统考第五次作业操作题,计算机基础第5次作业 第五章 Powerpoint知识题
  8. android开发微博前的包准备,新浪微博开发之前期准备篇
  9. springMVC:后台传值并返回页面
  10. 手机页面图片显示高低不一致
  11. A股管家股票自动交易软件系统,功能完善强大
  12. 20121214收藏
  13. 云通信接口更新迭代——SUBMAIL API V4正式上线
  14. 特征多项式法(characteristic polynomial )求特征值(结合lanczos和householder)(python,数值积分)
  15. java 拼图_Java 9:“拼图计划终于给了我们急需的Java安全带”
  16. python sklearn的训练集测试集根据标签的比例来切分数据集
  17. c语言实验心得100字,实验心得100字_100个面试常见经典问题_100个面试问题和答案...
  18. 聚类算法(五)——层次聚类 linkage (含代码)
  19. 安卓自动无限试玩,只需一根WiFi玩法
  20. 商城项目-商品规格数据结构

热门文章

  1. devops的重要性_为什么DevOps是当今最重要的技术战略
  2. devops项目经理_DevOps:如何避免交接导致项目死亡
  3. raspberry pi_如何使用Raspberry Pi设置个人Web服务器
  4. 开源战略游戏源码_开源的历史告诉我们关于战略优势的知识
  5. unity gizmo_GitLab的新功能,沃尔玛的OneOps,《纽约时报》的Gizmo以及更多新闻
  6. 开源 非开源_开源周中的女性
  7. ROS笔记(16) ArbotiX
  8. ROS笔记(7) 话题通信
  9. php7 mcrypt模块_如何在php7.2/php7.3中安装mcrypt扩展?
  10. 百度 mysql的sql优化_SQL优化问题