---
title: "列加密概述 - OceanBase 数据库 V4.6.0 | OceanBase 文档中心"
description: 列加密概述 列加密功能是 OceanBase 数据库提供的一种数据保护机制，可在返回结果时根据加密规则返回密文，用于保护存储在数据库中的敏感数据，支持 MySQL 和 Oracle 租户模式。本文说明了列加密功能及原理，并给出示例。 功能适用性 OceanBase 数据库社区版暂不支持列加密。 工作原理 数据库管理员…
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*P8CuR4UJ_FkAAAAAAAAAAAAADiGDAQ/original) OceanBase 数据库分布式版 - V 4.6.0

# 列加密概述

更新时间：2026-06-12 18:02:43

[编辑](https://github.com/oceanbase/oceanbase-doc/edit/V4.6.0/zh-CN/600.manage/500.security-and-permissions/500.data-encryption/500.column-encryption/100.column-encryption-overview.md)  

列加密功能是 OceanBase 数据库提供的一种数据保护机制，可在返回结果时根据加密规则返回密文，用于保护存储在数据库中的敏感数据，支持 MySQL 和 Oracle 租户模式。本文说明了列加密功能及原理，并给出示例。

#### 功能适用性

OceanBase 数据库社区版暂不支持列加密。

## 工作原理

数据库管理员或拥有用户级 `CREATE SENSITIVE RULE` 权限的用户可以在已有表上创建列级别的敏感数据保护规则。如果某一列 `A` 被数据保护规则 `R` 指定为保护列，那么当用户执行 `SELECT` 操作，且投影的列中包含了 `A` 列时，数据库会检查用户是否具有这条规则 `R` 上的明文访问权限：

- 用户持有规则 `R` 的明文访问权限：包含 A 列的投影表达式会正常返回明文结果。
 - 用户没有规则 `R` 明文访问权限：包含 A 列的投影表达式会按照规则描述的方式加密后再返回给用户。

## 数据保护规则

通过 `CREATE SENSITIVE RULE` 语法创建敏感规则，语法如下：

```sql
CREATE SENSITIVE RULE <rule_name>
ON <sensitive_field_list>
USING ENCRYPTION [ = <encryption_method>];

```

具体说明如下：

- 数据保护规则：目前支持的数据保护规则为 `ENCRYPTION` 类型。创建规则时可以指定加密算法。
 - 规则范围：每条规则可以指定保护一个或多个列，允许跨库、跨表。一个列只能被最多一条数据保护规则所保护。
 - 权限要求：创建规则的用户需要同时有用户级的 `CREATE SENSITIVE RULE` 权限，以及这些列上的完整访问权限（包括 `SELECT`、`INSERT`、`UPDATE`、`REFERENCE` 权限）。**注意，创建规则的用户不会自动拥有这条规则的明文访问权限，需要单独授权**。

## 权限机制

- 用户级明文访问权限：如果某用户拥有用户级的明文访问权限，则该用户不会受到数据保护规则的影响，可以访问明文数据。
 - 规则级明文访问权限：如果某用户拥有某条规则上的明文访问权限，则该用户不会受到这条规则的影响，可以明文访问被这条规则保护的数据。
 - 无权限用户：如果用户没有用户级的明文访问权限，也没有某条规则上的明文访问权限，那么当该用户查询这条规则所保护的列时，只能看到加密后的数据。

## 与函数加密的区别

[ENHANCED_AES_ENCRYPT](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005687241) 函数是 OceanBase 数据库中的一种 AES 加密方式。

| 特性 | 列加密功能 | `ENHANCED_AES_ENCRYPT` 函数 |
| --- | --- | --- |
| 使用方式 | 通过 DDL 配置规则 | 在 SQL 语句中手动调用 |
| 权限控制 | 基于规则的细粒度权限 | 需要 ENCRYPT 权限 |
| 查询体验 | 根据权限自动返回明文/密文 | 始终返回密文，需手动解密 |
| 索引支持 | 支持加密列索引 | 支持，但需要特殊处理 |
| 应用兼容性 | 完全兼容现有应用 | 需要修改应用代码 |

## 相关文档

- [创建列加密规则（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685781)
 - [创建列加密规则（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685783)
 - [列加密权限管理（MySQL 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685782)
 - [列加密权限管理（Oracle 模式）](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000005685784)

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
