数据库
安全性

与任何复杂的安全产品一样,您务必妥善规划 Oracle Label Security 的部署,以便避免潜在问题。以下步骤可作为部署 Oracle Label Security 的基本指南。您可以使用 Oracle Enterprise Manager 或 Oracle Label Security API/命令行界面来执行实施。建议首先使用示例演示表来深入了解数据标签如何协调访问控制,以及 Oracle Label Security 中提供的各种实施选项。

很可能只有少量信息表包含需要加标签的信息。主要候选选对象是那些包含“个人身份信息”(PII)、商业机密、研究成果以及任何类型的财务信息的表。或者,在将物理上彼此隔离的信息孤岛整合到一个数据库中后,通过添加标签可以保持与数据隔离时相同的安全级别,但是明显更容易控制它们之间的受控信息交换。

Oracle Label Security 提供三个标签组件:

级别(至少一个):确定数据行的敏感性级别或者用户的许可级别。例如:“Public”、“Internal”、“Secret”、“Confidential”以及“Proprietary”

隔离区(可选;明确“需要知晓”):允许隔离级别;非层级;用户需要至少拥有相应数据行的所有隔离区才能访问该行;例如:“Marketing”、“Finance”、“Mergers and Acquisitions”、“Project X”以及“SaaS Customer Y”

组(可选;明确数据所有权):分层;用户需要至少拥有一个数据行组才有权访问。示例:“EMEA”是子组“Italy”、“France”以及“Northern Europe”的父组

高级管理人员和安全人员应确定哪些用户组或个别用户有权访问之前添加标签的信息。Oracle Label Security 为管理员用户提供了许多特殊权限,以便委托策略维护任务、假设使用普通用户标签,等等。只有经过慎重考虑,才能授予这些额外的权限。

不必使用第二步中介绍的标签组件的所有组合;例如,“Mergers and Acquisitions”始终属于“Top Secret”,绝对不会在国家/地区层面确定,所以其“组”应该是“EMEA”。这个示例的标签应该是:
Top Secret:Mergers and Acquisitions:EMEA

Oracle Label Security 通过“策略”维护之前步骤中收集的所有信息。可以使用 Oracle Enterprise Manager Cloud Control 或者全面、灵活的 API 来创建策略。

将 OLS 策略应用于表后,它会向该表附加一个隐藏列,用于存储行(“分类”)标签。该列中的值最初为 NULL;激活 READ_CONTROL 后,除拥有 READ 或 FULL 权限的管理用户之外,没有人能够访问此表。您可以手动查找各行的标签,或者通过 where 子句来确定它们:
SQL> update <table_name> set OLS_COLUMN =
char_to_label ('<policy_name>','<valid_label>')
where <condition>
在表中添加新行后,将根据用户的写入标签确定这些标签,或者通过添加标签函数来根据该行或其他表的其他列确定此标签。