Oracle Label Security - Amazon Relational Database Service
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

Oracle Label Security

Amazon RDS 通过使用 OLS 选项支持 Oracle Database 12c 企业版的 Oracle Label Security。

大多数数据库安全性控制对象级别的访问。Oracle Label Security 提供对针对各个表格行的访问的精细控制。例如,您可以使用 Label Security 通过基于策略的管理模型实施法规合规性。您可以使用 Label Security 策略控制对敏感数据的访问,并限制对具有相应清除级别的用户的访问。有关更多信息,请参阅 Oracle 文档中的 Oracle Label Security 简介

重要

对于 Amazon RDS 上的 Oracle Database 19c、Oracle Database 18c 和 Oracle Database 12c 第 2 版 (12.2),Oracle Label Security 是一个永久性和持久性选项。无法从 Oracle Database 19c、Oracle Database 18c 或 Oracle Database 12c 第 2 版 (12.2) 数据库实例中删除 Oracle Label Security。

Oracle Label Security 的先决条件

以下是使用 Oracle Label Security 的先决条件:

  • 数据库实例必须使用自带许可模式。有关更多信息,请参阅 Oracle 许可选项

  • 您必须拥有 Oracle 企业版的有效许可证以及软件更新许可证和支持。

  • 您的 Oracle 许可证必须包含 Label Security 选项。

  • 您必须使用非多租户数据库架构,而不是单租户架构。有关更多信息,请参阅 针对 Oracle 架构的 RDS

添加“Oracle Label Security”选项

将“Oracle Label Security”选项添加到数据库实例的一般过程如下所示:

  1. 创建新的选项组,或者复制或修改现有选项组。

  2. 向选项组添加选项。

  3. 将选项组与数据库实例相关联。

在添加“Label Security”选项后,一旦激活该选项组,就会激活 Label Security。

将“Label Security”选项添加到数据库实例

  1. 确定您想要使用的选项组。您可以创建新的选项组,或使用现有选项组。如果您想使用现有选项组,请跳到下一步。或者,通过以下设置创建自定义数据库选项组:

    1. 对于 引擎,请选择 oracle-ee

    2. 对于主引擎版本,选择数据库实例的版本。

    有关更多信息,请参阅 创建选项组

  2. OLS 选项添加到该选项组。有关添加选项的更多信息,请参阅 将选项添加到选项组

    重要

    如果您向已附加到一个或多个数据库实例的现有选项组添加“Label Security”,则将重新启动所有数据库实例。

  3. 将选项组应用到新的或现有的数据库实例:

    • 对于新数据库实例,您可以在启动实例时应用选项组。有关更多信息,请参阅 创建 Amazon RDS 数据库实例

    • 对于现有数据库实例,您可以通过修改实例并附加新的选项组来应用选项组。如果您将“Label Security”选项添加到现有数据库实例,则在数据库实例自动重新启动时会出现短暂中断。有关更多信息,请参阅 修改 Amazon RDS 数据库实例

使用 Oracle Label Security

要使用 Oracle Label Security,请创建可控制对您表格中特定行的访问的策略。有关更多信息,请参阅 Oracle 文档中的创建 Oracle Label Security 策略

当您使用 Label Security 时,可以 LBAC_DBA 角色执行所有操作。数据库实例的主用户将被授予 LBAC_DBA 角色。您可以向其他用户授予 LBAC_DBA 角色,以便他们可以管理 Label Security 策略。

对于 Amazon RDS for Oracle Database 19c、Oracle Database 18c 和 Oracle Database 12c 第 2 版 (12.2) 数据库实例,您必须为需要访问 Oracle Label Security 的任何新用户授予 OLS_ENFORCEMENT 包的访问权限。要授予对 OLS_ENFORCEMENT 包的访问权限,请以主用户身份连接到数据库实例,然后运行以下 SQL 语句:

GRANT ALL ON LBACSYS.OLS_ENFORCEMENT TO username;

您可以通过 Oracle Enterprise Manager (OEM) Cloud Control 配置标签安全性。Amazon RDS 可通过 Management Agent 选项支持 OEM Cloud Control。有关更多信息,请参阅 适用于 Enterprise Manager Cloud Control 的 Oracle Management Agent

删除“Oracle Label Security”选项

您可以从数据库实例中删除“Oracle Label Security”。

要从数据库实例中删除“Label Security”,请执行下列操作之一:

  • 要从多个数据库实例中删除 Label Security,请从其所属的选项组中删除“Label Security”选项。此更改会影响使用该选项组的所有数据库实例。如果从已附加到多个数据库实例的选项组中删除“Label Security”,则将重新启动所有数据库实例。有关更多信息,请参阅 从选项组中删除选项

  • 要从单个数据库实例中删除“Label Security”选项,请修改该数据库实例,并指定不包含“Label Security”选项的另一个选项组。您可以指定默认 (空) 选项组,或指定其他自定义选项组。如果删除“Label Security”选项,则在数据库实例自动重新启动时会出现短暂中断。有关更多信息,请参阅 修改 Amazon RDS 数据库实例

故障排除

以下是您在使用 Oracle Label Security 时可能遇到的问题。

问题 故障排除建议

当尝试创建策略时,您会看到一条与以下内容类似的错误消息:insufficient authorization for the SYSDBA package

有关 Oracle 的 Label Security 功能的已知问题阻止了用户名为 16 或 24 个字符的用户运行 Label Security 命令。您可以使用其他数量的字符创建新用户,向该新用户授予 LBAC_DBA 角色,以该新用户的身份登录,并以该新用户的身份运行 OLS 命令。有关更多信息,请联系 Oracle 支持。