

# Oracle Label Security
<a name="Oracle.Options.OLS"></a>

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

大多数数据库安全性控制对象级别的访问。Oracle Label Security 提供对针对各个表格行的访问的精细控制。例如，您可以使用 Label Security 通过基于策略的管理模型实施法规合规性。您可以使用 Label Security 策略控制对敏感数据的访问，并限制对具有相应清除级别的用户的访问。有关更多信息，请参阅 Oracle 文档中的 [Oracle Label Security 简介](https://docs.oracle.com/database/121/OLSAG/intro.htm#OLSAG001)。

**Topics**
+ [Oracle Label Security 的要求](#Oracle.Options.OLS.PreReqs)
+ [使用 Oracle Label Security 时的注意事项](#Oracle.Options.OLS.Using)
+ [添加“Oracle Label Security”选项](#Oracle.Options.OLS.Add)
+ [问题排查](#Oracle.Options.OLS.Troubleshooting)

## Oracle Label Security 的要求
<a name="Oracle.Options.OLS.PreReqs"></a>

熟悉 Oracle Label Security 的以下要求：
+ 数据库实例必须使用自带许可模式。有关更多信息，请参阅“[RDS for Oracle 许可选项](Oracle.Concepts.Licensing.md)”。
+ 您必须拥有 Oracle 企业版的有效许可证以及软件更新许可证和支持。
+ 您的 Oracle 许可证必须包含 Label Security 选项。

## 使用 Oracle Label Security 时的注意事项
<a name="Oracle.Options.OLS.Using"></a>

要使用 Oracle Label Security，请创建可控制对您表格中特定行的访问的策略。有关更多信息，请参阅 Oracle 文档中的[创建 Oracle Label Security 策略](https://docs.oracle.com/database/121/OLSAG/getstrtd.htm#OLSAG3096)。

请考虑以下事项：
+ Oracle Label Security 是永久性的持续选项。因为该选项是永久性的，所以不能将其从选项组中删除。如果您将 Oracle Label Security 添加到选项组并将其与您的数据库实例关联，则可以稍后将其他选项组与您的数据库实例关联，但该组还必须包含 Oracle Label Security 选项。
+ 使用 Label Security 时，您以 `LBAC_DBA` 角色执行所有操作。数据库实例的主用户将被授予 `LBAC_DBA` 角色。您可以向其他用户授予 `LBAC_DBA` 角色，以便他们可以管理 Label Security 策略。
+ 请确保将对 `OLS_ENFORCEMENT` 程序包的访问权限授予需要访问 Oracle Label Security 的任何新用户。要授予对 `OLS_ENFORCEMENT` 包的访问权限，请以主用户身份连接到数据库实例，然后运行以下 SQL 语句：

  ```
  GRANT ALL ON LBACSYS.OLS_ENFORCEMENT TO username;
  ```
+ 可以通过 Oracle Enterprise Manager（OEM）Cloud Control 配置 Label Security。Amazon RDS 通过 Management Agent 选项支持 OEM Cloud Control。有关更多信息，请参阅 [适用于 Enterprise Manager Cloud Control 的 Oracle Management Agent](Oracle.Options.OEMAgent.md)。

## 添加“Oracle Label Security”选项
<a name="Oracle.Options.OLS.Add"></a>

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

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

1. 将 选项添加到该选项组。
**重要**  
Oracle Label Security 是永久性的持续选项。

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

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

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

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

   1. 对于 **引擎**，请选择 **oracle-ee**。

   1. 对于**主引擎版本**，选择数据库实例的版本。

   有关更多信息，请参阅“[创建选项组](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.Create)”。

1. 将 **OLS** 选项添加到该选项组。有关添加选项的更多信息，请参阅 [将选项添加到选项组](USER_WorkingWithOptionGroups.md#USER_WorkingWithOptionGroups.AddOption)。
**重要**  
如果您向已附加到一个或多个数据库实例的现有选项组添加“Label Security”，则将重新启动所有数据库实例。

1. 将选项组应用到新的或现有的数据库实例：
   + 对于新数据库实例，您可以在启动实例时应用选项组。有关更多信息，请参阅“[创建 Amazon RDS 数据库实例](USER_CreateDBInstance.md)”。

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

## 问题排查
<a name="Oracle.Options.OLS.Troubleshooting"></a>

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


****  

| 问题 | 故障排除建议 | 
| --- | --- | 
|  当尝试创建策略时，您会看到一条与以下内容类似的错误消息：`insufficient authorization for the SYSDBA package`。  |  有关 Oracle 的 Label Security 功能的已知问题阻止了用户名为 16 或 24 个字符的用户运行 Label Security 命令。您可以使用其他数量的字符创建新用户，向该新用户授予 LBAC\$1DBA 角色，以该新用户的身份登录，并以该新用户的身份运行 OLS 命令。有关更多信息，请联系 Oracle Support。  | 