暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

故障处理|Oracle 如何解决 ORA-28348: 在指定列上定义的索引无法加密

原创 小小亮 2022-10-27
351

ORA-28348

尝试加密列,但失败并出现 ORA-28348:

SQL> alter table oe.customers modify (cust_first_name encrypt no salt);
alter table oe.customers modify (cust_first_name encrypt no salt)
                                 *
ERROR at line 1:
ORA-28348: index defined on the specified column cannot be encrypted

尽管我们使用NO SALT来加密索引列,但仍然出现错误。

ORA-28348 意味着您尝试加密的列有一个特殊的索引,其类型是基于功能的索引、域索引或连接索引,不允许加密。

解决方案

现在,您有 2 个选项,放弃加密列或删除索引的想法。

为了解决 ORA-28348,我们删除索引,然后加密没有加salt的列。

1. 下降指数

SQL> drop index oe.cust_upper_name_ix;

Index dropped.

2.加密列

SQL> alter table oe.customers modify (cust_first_name encrypt no salt);

Table altered.

我们在以后的索引中使用NO SALT

为了确保该列已被加密,我们应该知道如何检查加密数据

3.创建一个普通索引

这是一个可选步骤。为了平衡数据加密和数据检索性能的限制,我们为原始列创建了一个普通索引。

SQL> create index oe.cust_name_idx on oe.customers (cust_last_name, cust_first_name);

Index created.

性能可能会有所妥协,但它确实有效。


原文标题:How to Resolve ORA-28348: index defined on the specified column cannot be encrypted

原文作者:  Ed Chen

原文链接:https://logic.edchen.org/how-to-resolve-ora-28348-index-defined-on-the-specified-column-cannot-be-encrypted/

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论