---
title: "列加密常见问题 - OceanBase 数据库 V4.3.5 | OceanBase 文档中心"
description: 列加密常见问题 本文档介绍了列加密功能的一些常见问题。 把加密列数据通过 SQL 写入一个不加密的列，如 INSERT INTO ... SELECT ... ，查询时新列是密文还是明文？ 如果执行 INSERT INTO ... SELECT ... 的用户有对应明文访问数据的权限，则插入的是明文。查询时是明文（除…
---
切换语言

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

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

# 列加密常见问题

更新时间：2026-04-07 20:57:20

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

本文档介绍了列加密功能的一些常见问题。

## 把加密列数据通过 SQL 写入一个不加密的列，如 `INSERT INTO ... SELECT ...`，查询时新列是密文还是明文？

- 如果执行 `INSERT INTO ... SELECT ...` 的用户有对应明文访问数据的权限，则插入的是明文。查询时是明文（除非该表上有另外的加密规则）。
 - 如果执行 `INSERT INTO ... SELECT ...` 的用户没有对应明文访问数据的权限，则不允许执行这种操作。

## 加密列的列名重命名之后，是否还受加密规则保护？

列加密规则的应用不受列名更改的影响。即使列名被更改，这个列仍然会受到加密规则的保护。

## 加密列在函数内，比如 `SELECT CAST(id AS CHAR), name, password FROM test_01;`，查询时是密文还是明文？

在查询中，如果投影列包含加密列，则整个投影列将被加密返回。

## 从加密列设置非加密列的值

当从加密列设置非加密列的值时，如 `UPDATE test_01 SET age = id + 2;`，如果执行这条语句的用户有明文访问权限，则非加密列的值将以明文形式处理。否则，用户不能执行这条语句。

## 加密列与明文列的计算结果

在计算加密列与明文列的结果时，如 `SELECT CONCAT(id, name) FROM test_01;`，结果将被加密返回。

## 备份恢复对列加密规则的影响

在进行租户级备份恢复时，列加密规则将被恢复。但表级恢复功能，恢复的是独立对象，难以继承源表的列加密规则和权限。所以源表包含列加密规则时，建议业务评估是否要对表级恢复出来的数据增加单独的访问控制。

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