数据库活动流概览 - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

数据库活动流概览

作为 Oracle 数据库管理员,您需要保障数据库的安全,并满足合规性和法规要求。一种策略是集成数据库活动流与监控工具。通过这种方式,您可以在 Oracle 数据库中监控审计活动并设置警报。

安全威胁既可以来自外部,也可以来自内部。要防范内部威胁,您可以使用数据库活动流功能控制管理员对数据流的访问。Oracle 数据管理员无权收集、传输、存储和处理流。

数据库活动流的工作原理

数据库活动流提供 Oracle 数据库实例中的近乎实时的活动流。Amazon RDS 会将活动推送到 Amazon Kinesis 数据流。系统将自动创建 Kinesis 流。在 Kinesis 中,您可以配置Amazon服务(例如 Amazon Kinesis Data Firehose),也可以配置 Amazon Lambda 来使用流并存储数据。

重要

数据库活动流是一项免费功能,但 Amazon Kinesis 会针对数据流收费。有关更多信息,请参阅 Amazon Kinesis Data Streams 定价

合规性管理应用程序也可以使用活动流。这些应用程序可以使用流生成警报,并对您的 Oracle 数据库活动进行审计。

Oracle 数据库中的统一审计

Amazon RDS for Oracle 默认不捕获任何活动。您可自行在 Oracle 数据库中创建和管理审计策略。

审计是监控和记录已配置的数据库操作。在 Oracle 数据库中,统一审计策略是一组已命名的审计设置,可用于审计某个方面的用户行为。策略可以是简单的审计单个用户的活动。您还可以创建使用条件的复杂审计策略。

Oracle 数据库将审计记录(包括 SYS 审计记录)写入统一审计跟踪。例如,如果在 INSERT 语句期间发生错误,标准审计会指示错误编号和执行的 SQL。审计跟踪位于 AUDSYS 架构的只读表中。查询 UNIFIED_AUDIT_TRAIL 数据词典视图,即可访问这些记录。

通常,您可以按如下方式配置数据库活动流:

  1. 使用 CREATE AUDIT POLICY 命令创建 Oracle 数据库审计策略。

    Oracle 数据库会生成审计记录。

  2. 使用 AUDIT POLICY 命令启用审计策略。

  3. 配置数据库活动流。

    仅捕获与 Oracle 数据库审计策略匹配的活动,并将其发送到 Amazon Kinesis 数据流。启用数据库活动流后,Oracle 数据库管理员无法更改审计策略或删除审计日志。

要了解有关统一审核策略的更多信息,请参阅 Oracle Database 安全指南中的关于使用统一审计策略和审计审计活动

非本机审计字段

启动数据库活动流时,每个数据库事件都会生成相应的活动流事件。例如,数据库用户可能会运行 SELECTINSERT 语句。数据库会审计这些事件并将结果发送到 Amazon Kinesis 数据流。

活动流中的事件表示为 JSON 对象。JSON 对象包含一个 DatabaseActivityMonitoringRecord,其中包含一个 databaseActivityEventList 数组。数组中的预定义字段包括 classclientApplicationcommand

Oracle 数据库统一审计跟踪中的大多数事件都映射到 RDS 数据活动流中的字段。例如,统一审计中的 UNIFIED_AUDIT_TRAIL.SQL_TEXT 字段映射到数据库活动流中的 commandText 字段。但是,Oracle 数据库审计字段(如 OS_USERNAME)不映射到数据库活动流中的预定义字段。

默认情况下,活动流不包括原生引擎审计字段。您可以配置 RDS for Oracle,使其在 engineNativeAuditFields JSON 对象中包含这些额外的字段。

数据库参数组覆盖

通常,您可以通过附加参数组来打开 RDS for Oracle 中的统一审计。但是,数据库活动流需要额外的配置。为了改善您的客户体验,Amazon RDS 将执行以下操作

  • 如果启用活动流,Oracle RDS 将忽略参数组中的审计参数。

  • 如果禁用活动流,Oracle RDS 将停止忽略审计参数。

异步mode

RDS for Oracle 中的活动流始终是异步的。当数据库会话生成活动流事件时,会话将立即返回到正常活动。在后台,活动流事件将成为持久记录。如果后台任务出错,则 Amazon RDS 将生成事件。此事件指示活动流事件记录可能已丢失的任何时间段的开始和结束时间。异步模式可提高数据库性能,而不是活动流的准确性。

数据库活动流的要求

RDS for Oracle 中,数据库活动流具有以下要求和限制:

  • 企业版和标准版 2(SE2)中的 Oracle Database 19c 版本 19.0.0.0.ru-2019-07.rur-2019-07.r1 及更高版本均支持数据库活动流。

  • 数据库活动流支持以下实例类:

    • db.z1d

    • db.m4.*

    • db.m5.*

    • db.r4.*

    • db.r5.*

      注意

      不支持使用命名模式 db.r5.instance_size.tpcthreads_per_core.memratio 的内存优化 db.r5 类。

  • 不支持 CDB。

  • 不支持 Oracle 只读副本。

  • 在 RDS for Oracle 数据库实例中,您必须自行创建和管理审计策略。与 Amazon Aurora 不同,RDS for Oracle 默认不捕获数据库活动。

  • 以下 Amazon 区域不支持数据库活动流:

    • 中国(北京)区域,cn-north-1

    • 中国(宁夏)区域,cn-northwest-1

    • Amazon GovCloud (US-East),us-gov-east-1

    • Amazon GovCloud (US-West),us-gov-west-1

  • 数据库活动流需要使用 Amazon Key Management Service (Amazon KMS)。Amazon KMS 是必需的,因为活动流始终是加密的。

  • 数据库活动流需要使用 Amazon Kinesis。