You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Oracle 19c视图DDL出现字面量替换:动态数据掩码引发的异常?

Oracle 19c视图DDL被动态数据掩码替换为字面量的已知行为说明

这确实是Oracle 19c搭配动态数据掩码(Dynamic Data Masking, DDM)时的已知行为,核心原因在于视图创建时的权限上下文:

  • 当创建视图的用户对底层表目标列拥有DDM掩码权限时,Oracle会将视图定义里的该列引用直接替换为掩码后的字面量(比如'**********')。这是因为视图的定义会固化创建者当时的数据可见性——创建者看到的是掩码后的数据,视图就会直接继承这个结果,而非保留原始的列引用。
  • 无DDM掩码权限的用户创建视图时,因为其能看到列的原始数据,视图定义会保留a.customer_acct_nbr这类原始引用,查询时自然返回实际值。

如果需要规避这个行为,可参考两种方式:

  1. 使用拥有底层表列无掩码权限的用户创建视图,确保视图保留原始列引用;
  2. 若必须用带掩码权限的用户创建,可先授予该用户对应列的UNMASK权限,完成视图创建后,再根据业务需求回收该权限。

内容的提问来源于stack exchange,提问作者Rickenator

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.08 21:32:39