---
title: "列加密权限管理 - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: 列加密权限管理 在配置好列加密规则后，合理的权限管理是确保数据安全的关键环节。本文档将详细介绍 OceanBase 列加密功能的权限体系和管理语法，帮助你建立完善的权限控制机制，确保敏感数据只对授权用户可见。 注意 该特性仅适用于 MySQL 租户模式。 权限类型 列加密功能采用基于规则的权限类型，通过数据保护规则控…
---
切换语言

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

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

# 列加密权限管理

更新时间：2026-04-16 13:07:25

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

在配置好列加密规则后，合理的权限管理是确保数据安全的关键环节。本文档将详细介绍 OceanBase 列加密功能的权限体系和管理语法，帮助你建立完善的权限控制机制，确保敏感数据只对授权用户可见。

#### 注意

该特性仅适用于 MySQL 租户模式。

## 权限类型

列加密功能采用基于规则的权限类型，通过数据保护规则控制用户对敏感列的访问权限。OceanBase 在 MySQL 权限体系中新增了专门的权限类型来支持列加密功能，包含用户级权限和敏感规则级权限。

### 用户级权限

| 权限名称 | 说明 | 默认拥有者 | 升级处理 | 权限限制 | 功能范围 | 包含关系 |
| --- | --- | --- | --- | --- | --- | --- |
| CREATE SENSITIVE RULE | 允许用户创建和删除敏感规则 | root 用户 | 系统升级时自动赋予 | root 用户权限不能被 `REVOKE` | 可使用 `CREATE/DROP SENSITIVE RULE` 语法 | 包含在 `ALL PRIVILEGES` 中 |
| PLAINACCESS | 允许用户访问所有明文数据，不受数据保护规则影响 | root 用户 | 系统升级时自动赋予 | root 用户权限不能被 `REVOKE` | 可访问所有明文数据，不受任何数据保护规则影响 | **不包含**在 `ALL PRIVILEGES` 中 |

### 敏感规则级权限

| 权限名称 | 说明 | 权限范围 | 自动授权 | 重要说明 |
| --- | --- | --- | --- | --- |
| PLAINACCESS | 允许用户访问特定规则所关联列的明文数据 | 拥有某条规则上的 `PLAINACCESS` 权限的用户可以访问这条规则所关联的列的明文数据 | 创建规则的用户自动拥有这条规则的 `PLAINACCESS` 权限（不包含 `WITH GRANT OPTION`） | 规则的创建者并不能直接 `GRANT PLAINACCESS ON` 这条规则给其他用户，除非它拥有 `WITH GRANT OPTION` 权限 |

## 权限管理

### 授予权限语法及示例

1. 授予用户级权限

   语法如下：

   ```sql
   -- 授予用户/角色创建敏感规则的权限. 该权限只有用户级
   GRANT CREATE SENSITIVE RULE ON *.* TO <user_or_role_list>;

   -- 授予用户/角色对特定规则的明文访问权限
   GRANT PLAINACCESS ON *.* TO  <user_or_role_list>;

   ```

   参数说明如下：

   | 参数 | 说明 | 示例 |
   | --- | --- | --- |
   | `user_or_role_list` | 用户或角色列表，多个用户用逗号分隔 | `u1, u2, r1` |
   | `*.*` | 表示所有数据库的所有表 | 固定值，不可修改 |

   示例如下：

   ```sql
   -- 授予用户 u1 创建敏感规则的权限
   GRANT CREATE SENSITIVE RULE ON *.* TO u1;

   -- 可以一次性对多个用户/角色授予权限
   -- 授予用户 u2 和角色 r1 创建敏感规则的权限
   GRANT CREATE SENSITIVE RULE ON *.* TO u2, r1;

   ```
 2. 授予规则级权限

   语法如下：

   ```sql
   -- 规则级赋权。注意需要使用 SENSITIVE RULE 关键字
   GRANT PLAINACCESS ON SENSITIVE RULE <rule_name> TO <user_or_role_list>;

   ```

   参数说明如下：

   | 参数 | 说明 | 示例 |
   | --- | --- | --- |
   | `rule_name` | 敏感规则的名称 | `'salary_encryption'`, `'credit_card_rule'` |
   | `user_or_role_list` | 用户或角色列表，多个用户用逗号分隔 | `u1, u2, r1` |

   示例如下：

   ```sql
   -- 授予 u1 用户级的明文访问权限（同理可以对多个用户/角色同时授予权限）
   GRANT PLAINACCESS ON *.* TO u1;
   REVOKE PLAINACCESS ON *.* FROM u1;

   -- 授予 u1 对于规则 r1 的明文访问权限
   -- 同理可以对多个用户/角色同时授予权限（但一次只能授予一个规则上的权限）
   GRANT PLAINACCESS ON SENSITIVE RULE r1 TO u1;

   ```

### 撤销权限语法及示例

1. 撤销用户级权限

   语法如下：

   ```sql
   -- 撤回用户/角色创建敏感规则的权限. 该权限只有用户级
   REVOKE CREATE SENSITIVE RULE ON *.* FROM <user_or_role_list>;

   -- 撤回用户/角色对特定规则的明文访问权限
   REVOKE PLAINACCESS ON *.* FROM <user_or_role_list>;

   ```

   参数说明如下：

   示例如下：

   ```sql
   -- 撤权
   REVOKE CREATE SENSITIVE RULE ON *.* FROM u1;

   -- 可以一次性对多个用户/角色撤回权限
   -- 撤回用户 u2 和角色 r1 创建敏感规则的权限
   REVOKE CREATE SENSITIVE RULE ON *.* FROM u2, r1;

   ```
 2. 撤销规则级权限

   语法如下：

   ```sql
   -- 规则级撤权。注意需要使用 SENSITIVE RULE 关键字
   REVOKE PLAINACCESS ON SENSITIVE RULE <rule_name> FROM <user_or_role_list>;

   ```

   参数说明：

   示例如下：

   ```sql
   -- 撤回 u1 用户级的明文访问权限（同理可以对多个用户/角色同时撤回权限）
   REVOKE PLAINACCESS ON *.* FROM u1;

   -- 撤回 u1 对于规则 r1 的明文访问权限
   -- 同理可以对多个用户/角色同时撤回权限（但一次只能撤回一个规则上的权限）
   REVOKE PLAINACCESS ON SENSITIVE RULE r1 FROM u1;

   ```

### 查看权限

1. 查看敏感规则

   支持查看当前租户下的所有敏感数据保护规则，或查看指定表、指定数据库关联的所有敏感规则。支持使用 `LIKE` 子句过滤规则名。

   语法如下：

   ```sql
   SHOW SENSITIVE RULES opt_show_condition
   | SHOW SENSITIVE RULES from_or_in relation_factor opt_from_or_in_database_clause opt_show_condition
   | SHOW SENSITIVE RULES from_or_in DATABASE from_or_in database_factor opt_show_condition;

   ```

   参数说明：

   | 参数 | 说明 | 示例 |
   | --- | --- | --- |
   | `opt_show_condition` | 可选的显示条件，如 `LIKE` 子句 | `LIKE '%rule1%'` |
   | `relation_factor` | 表名 | `tb1`, `employees` |
   | `database_factor` | 数据库名 | `test`, `hr_db` |

   示例如下：

   ```sql
   -- 查看当前租户下所有的 sensitive rules
   SHOW SENSITIVE RULES;

   -- 查看 tb1 关联的所有数据保护规则
   SHOW SENSITIVE RULES FROM tb1;

   -- 查看 test.tb1 关联的所有数据保护规则
   SHOW SENSITIVE RULES FROM tb1 FROM test;

   -- 查看 test DB 关联的所有数据保护规则
   SHOW SENSITIVE RULES FROM DATABASE test;

   -- 使用 LIKE 子句过滤规则名
   SHOW SENSITIVE RULES LIKE '%rule1%';
   SHOW SENSITIVE RULES FROM tb1 LIKE '%rule1%';
   SHOW SENSITIVE RULES FROM tb1 FROM test LIKE '%rule1%';
   SHOW SENSITIVE RULES FROM DATABASE test LIKE '%rule1%';

   ```

   返回结果形式示例如下：

   | 列名 | rule_id | rule_name | POLICY | METHOD | ENABLED | PROTECT_COLS |
   | --- | --- | --- | --- | --- | --- | --- |
   | 示例 | 1 | 'ENCRYPT_COL' | 'ENCRYPTION' | 'AES-256-ECB' | 'YES' | 'db1.tbl1(col_1, col_2), db2.tbl2(col_3), db3.tbl4(col_4, col_5)' |

   返回结果字段说明：

   | 字段名 | 说明 | 示例值 |
   | --- | --- | --- |
   | `rule_id` | 规则 ID，系统自动生成 | `1`, `2` |
   | `rule_name` | 规则名称 | `'ENCRYPT_COL'` |
   | `POLICY` | 策略类型 | `'ENCRYPTION'` |
   | `METHOD` | 加密方法 | `'AES-256-ECB'` |
   | `ENABLED` | 是否启用 | `'YES'`, `'NO'` |
   | `PROTECT_COLS` | 受保护的列，格式为 `database.table(columns)` | `'db1.tbl1(col_1, col_2)'`，不同表之间以逗号隔开。 |
 2. 查看用户权限

   语法如下：

   ```sql

   -- 查看指定用户的所有权限
   SHOW GRANTS FOR <user_or_role_list>;

   -- 查看当前用户的权限
   SHOW GRANTS;

   ```

   示例如下：

   ```sql
   -- 查看用户 u1 的所有权限
   SHOW GRANTS FOR u1;

   ```

   返回结果示例如下：

   ```sql
   +-----------------------------------------------------------+
   | Grants for u1@%                                           |
   +-----------------------------------------------------------+
   | GRANT ALL PRIVILEGES ON *.* TO u1 WITH GRANT OPTION     |
   | GRANT CREATE SENSITIVE RULE ON *.* TO u1;									|
   | GRANT PLAINACCESS ON *.* TO u1;									          |
   | GRANT PLAINACCESS ON `enc_rule1` TO u1;									  |
   | GRANT PLAINACCESS ON `enc_rule2` TO u1;								    |
   +-----------------------------------------------------------+

   ```

## 相关文档

- [列加密功能概述](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003568968)
 - [创建列加密规则](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003568969)
 - 查看敏感规则的定义及其属性，请参见 [DBA/CDB_OB_SENSITIVE_RULES](https://www.oceanbase.com/docs/common-oceanbase-database-cn-1000000003568980)

 上一篇 下一篇 ![有帮助](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) 咨询热线
