Oracle Database 的安全功能

Oracle Database 提供关键安全功能以满足您的独特需求,其中包括支持多种身份验证和授权方法、网络加密、权限分析、Real Application Security、统一审计、Oracle Virtual Private Database 等。

身份验证和授权

配置集中式用户身份验证和授权,简化用户管理。Oracle Database 可通过各种身份验证方法与企业身份服务无缝集成,包括 Microsoft Active Directory、Microsoft Entra ID 和 Oracle Cloud Infrastructure Identity and Access Management。支持使用外部身份服务或 RADIUS API 配置多因素身份验证。

通过采用强大的身份验证和授权策略,您可以防止恶意数据库用户账户在员工离职后保持活跃状态,从而降低未经授权访问敏感数据的风险。

区块链表

Oracle Database 中的区块链表可通过创建无法更改或删除的仅插入、加密链式记录,帮助确保数据完整性,从而提供防篡改的审计跟踪,并针对未经授权的更改(即使是绕过数据库的更改)提供强有力的保护。

通过利用区块链技术,您可以创建无法更改或删除的不可变事务处理记录。当数据完整性、可审计性以及防篡改记录至关重要时,例如在财务审计、供应链可追溯性和安全投票系统等场景下,这为企业提供了稳健的解决方案。

基于代码的访问控制

使用基于代码的访问控制 (CBAC),通过特定 PL/SQL 业务逻辑限制数据访问。通过将数据库角色直接绑定到 PL/SQL 程序单元(例如函数、过程和程序包),有助于确保仅在特定代码运行时启用这些角色。程序单元使用所需的特权执行,而不管调用用户拥有哪些特权,并且不会直接向用户公开这些特权或底层对象。通过实施 CBAC,可以贯彻最小权限原则,仅将必要的权限授予特定业务逻辑,而非授予个人用户或 schema。

DBMS_CRYPTO

DBMS_CRYPTO PL/SQL 程序包主要用于加密操作。它提供加密、解密和散列功能,可与 Oracle Key Vault 集成以进行密钥管理。当您需要对列、应用或单个数据元素级别的加密操作进行更精细控制时,DBMS_CRYPTO 尤其有用。这与透明数据加密不同,在调用 DBMS_CRYPTO 软件包解密数据之前,数据将保持加密状态,从而防止权限过高的用户或恶意管理员访问敏感数据。

DbNest

通过 DbNest,您可以使用 Linux 内核功能为多租户容器数据库 (CDB) 和可插入数据库 (PDB) 创建分层容器化运行时环境,从而解决 Oracle Database 多租户环境中的安全和隔离难题,确保每个租户的资源与其他租户隔离开来。

部署 DbNest 可以提高多租户数据库环境的安全性和隔离性,并降低横向移动和权限升级攻击的风险。

开发人员角色

使用 DB_DEVELOPER_ROLE 为您的开发团队提供适当的访问权限。该角色为开发人员提供了一组平衡的权限,使其能够创建、修改和部署数据库对象,同时仍限制对数据库操作的潜在影响。

该角色可助您降低风险,尽可能避免权限过高的开发人员做出变更并对数据库安全性或完整性造成影响,从而确保开发团队在构建和测试应用时拥有适当的访问权限,而不会影响整体系统安全性。

细粒度审计

企业需要准确洞察敏感数据访问,以满足安全性和合规性需求。细粒度审计 (FGA) 可在数据库中的行和列级别启用基于条件的定向审计,并允许您指定可以触发可疑活动预警的自定义处理程序。这提供了高价值的重点审计,有助于检测未经授权的敏感数据访问活动。FGA 可提高安全可见性,同时尽可能降低性能影响和审计开销。FGA 其中一项特色功能 — 基于数值的审计(例如仅在某人查询员工薪资高于特定阈值时执行审计),再配合自定义处理程序,能够有效增强 Oracle Database 的安全性,帮助企业满足更高级的审计需求。

密码逐步切换

在多个应用和数据库间管理密码非常复杂,即使经过精心规划和同步,也常常会导致停机。

Oracle 的密码逐步切换功能让管理员在更改密码时无需中断服务。在切换期间,旧密码和新密码均可使用,应用团队可以在不中断服务的情况下完成凭据更新。这有助于确保持续访问,同时帮助企业满足定期切换密码的合规性要求,从而简化管理工作并减少故障。

不可变表

使用不可变表,保护 Oracle Database 表免受内部威胁和意外数据损坏。这类仅允许追加信息的表能够防止内部人员因未授权数据修改以及人为错误导致的数据变更,从而帮助企业确保数据的准确性、实时性,同时保持完整性与安全性。不可变表对于满足插入数据后无法更改数据的要求非常有用。

锁定概要文件

使用锁定概要文件,对每个 PDB 实施细粒度安全控制,从而允许 CDB 管理员限制特定操作或功能。例如,锁定概要文件可以阻止 PDB 用户执行某些 SQL 语句,或阻止运行访问网络的程序。

网络 ACL

网络访问控制列表 (ACL) 通过 PL/SQL 实用程序包(例如 UTL_TCP、UTL_HTTP、UTL_SMTP 和 UTL_INADDR)控制数据库的出站网络访问。网络 ACL 可根据主机名、端口和权限定义细粒度规则,控制用户访问并防止未授权的连接。这为防止数据外泄提供了额外的安全防护层。

网络加密

加密客户端和服务器之间的数据库连接是一种安全优秀实践,有助于确保安全通信。

Oracle Database 提供了两种保护传输中数据的方法,即传输层安全 (TLS) 和原生网络加密。TLS 是一种行业标准协议,可提供强大的加密、身份验证和不可否认性。它需要客户端和服务器端的服务器证书和配置,适用于合规性或安全要求较高的环境。相比之下,原生网络加密更易于实施,仅需要服务器端参数,对于大多数应用都可以透明工作。它可自动协商支持的更强加密算法,无需更改证书或客户端。

Oracle Wallet

Wallet(或密钥库)是一种受密码保护的加密容器,主要用于安全地存储验证和签名身份证明,例如私钥、证书和数据库身份证明。在 Oracle Database 环境中,Wallet 支持客户端和服务器的 TLS、存储透明数据加密 (TDE) 主密钥以及促进与外部服务(例如 Microsoft Active Directory)的集成,从而实现跨网络的安全通信。Wallet 还提供了一个安全的外部密码存储,无需在代码中嵌入身份证明,即可将应用连接到数据库。尽管 Wallet 可以存放 TDE 主密钥,但 Oracle 仍建议您使用 Oracle Key Vault 进行管理,以增强安全性并实现集中式密钥管理。

权限分析

在复杂或遗留环境中,应用和用户经常被授予过多权限,使管理员在撤销访问权限时难以规避潜在的中断风险。权限分析可动态捕获运行时实际使用的权限和角色,从而使管理员能够有把握地移除不必要的权限,并实施最小权限原则,降低攻击面。

只读用户

对于只读用户,您无需撤消和重新授予权限,即可禁用或重新启用用户或会话的写入功能。只读用户允许您临时控制用于测试、管理或应用开发的用户或会话权限。

Real Application Security

Real Application Security 可满足现代企业和 AI 驱动的应用对细粒度、情境感知访问控制的需求,而传统安全模型难以满足这些需求。Real Application Security 提供了一个声明式、由数据库增强的框架,可将安全标识传递与行级和列级访问控制相结合。通过基于属性的访问控制机制,Real Application Security 能在运行时评估用户属性(如角色、部门或地理位置),以确定其访问权限。例如,护士只能查看所属护理单位的患者病历,而医生则可访问更多诊断细节,但对于心理健康史或生育健康数据等敏感字段,除非其角色明确允许,否则仍保持隐藏状态。通过将访问控制逻辑直接嵌入数据库,Real Application Security 能够消除对应用代码的依赖,简化开发流程,并有助于企业大规模满足严格的隐私、安全与合规要求。

Schema 级权限

在 Oracle Database 中,权限传统上是在对象级别(例如 SELECT ON hr.employees)或更宽泛的系统级别(例如 SELECT ANY TABLE)进行授予。如果用户需要访问 schema 中的所有表或所有过程,数据库管理员必须单独为每个对象授予访问权限,或者使用过于宽泛的系统权限(如 SELECT ANY TABLE),这会带来安全风险。

Schema 级权限功能通过简化数据库对象的授权流程,提升了安全性,特别适用于那些经常新增对象的 schema。

现在,DBA 可以在 schema 层面授予权限,而无需为整个数据库分配宽泛的系统权限。schema 级别的系统权限适用于该 schema 中现有和未来新增的所有对象。schema 级别权限对于经常变化且需要在 schema 中添加新对象的应用非常有用,可避免对用户授予过多权限。

安全应用角色

现代应用需要情境感知的安全功能来保护敏感数据并满足合规性要求。Oracle 安全应用角色仅允许在受控的数据库定义条件下激活角色,从而防止未经授权的权限使用。与传统角色不同,安全应用角色无法通过直接登录或外部工具被滥用。只有具有与应用上下文相关逻辑的 PL/SQL 程序包或过程才能启用安全应用角色。安全应用角色可以更有效地实施访问策略,缩小攻击面,并帮助保持一致的安全性 — 所有这些都不需要更改应用逻辑。

Transparent Sensitive Data Protection

Transparent Sensitive Data Protection 使用户能够快速识别和分类数据库表中的敏感数据,并为这些数据制定保护策略。该策略适用于列级,针对特定数据类型,并使用 Oracle Data Redaction 或 Oracle Virtual Private Database 设置来保护信用卡号或社会安全号等敏感信息。借助此功能,用户可在多个 Oracle 数据库间制定统一的策略,并可根据合规要求变化进行调整。Transparent Sensitive Data Protection 策略可轻松应用于整个大型企业范围内,有助于简化审计流程并实现一致的策略执行,特别适用于具有类似安全限制要求的政府部门等场景。

统一审计

Oracle Database 的全面审计功能可跟踪特权的使用、高权限用户的活动、敏感数据的访问、对数据库对象执行的操作以及对数据库设置的修改。统一审计提供条件级和列级审计功能,可在特定条件下对敏感数据的相关操作进行审计。所有审计记录均存储在防篡改日志中。

虚拟专用数据库

企业在实现细粒度数据访问控制时常遇到挑战,尤其是不同用户需要查看同一数据表的不同视图。传统方法依赖复杂的应用逻辑或静态视图,难以管理、审计和保障安全。

Oracle Virtual Private Database 可直接在数据库中实施行级和列级安全性,从而解决这一问题。Virtual Private Database 将根据用户身份或会话上下文,动态筛选谓词并附加到 SQL 查询。无论用户采用何种连接方式,这都有助于确保用户只看到他们有权访问的数据。安全策略可集中管理,对应用保持透明,并可在运行时自动适应上下文,确保策略一致执行。Virtual Private Database 能防止数据泄漏,支持合规性,同时简化应用开发。Virtual Private Database 是一种可扩展、具备上下文感知的数据访问控制方案。借助 Virtual Private Database,数据的安全性可直接在其所在位置得到保障。

注:为免疑义,本网页所用以下术语专指以下含义:

  1. 除Oracle隐私政策外,本网站中提及的“Oracle”专指Oracle境外公司而非甲骨文中国 。
  2. 相关Cloud或云术语均指代Oracle境外公司提供的云技术或其解决方案。