news 2026/4/16 5:20:14

如何实现虚拟专用数据库_VPD与DBMS_RLS包数据行级安全控制

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
如何实现虚拟专用数据库_VPD与DBMS_RLS包数据行级安全控制

VPD策略函数必须返回VARCHAR2类型的合法WHERE条件字符串;需先创建应用上下文并赋值,否则过滤失效;sec_relevant_cols参数启用列级掩码(12c+),object_type应为'TABLE'且object_schema须写真实属主。VPD 策略函数必须返回 VARCHAR2 类型的 WHERE 条件字符串oracle 的 dbms_rls 包依赖策略函数动态拼接 sql 过滤条件,这个函数不能返回布尔值、数字或 null —— 必须是合法的 sql 片段(如 'dept_id = sys_context(''hr_ctx'', ''dept_id'')'),且最终会被拼进查询的 where 子句里。返回空字符串或仅空格,会导致全表可见;返回无效语法(比如漏引号、多逗号)则在首次访问时抛 ora-28113: policy predicate has error。策略函数里避免用 SELECT ... INTO 查询用户属性,优先用 SYS_CONTEXT 获取应用上下文,减少解析开销不要在策略函数中调用 PL/SQL 包过程或写日志——它可能被反复执行,影响性能测试时用 EXPLAIN PLAN 查看实际执行计划,确认 VPD 条件是否被下推到基表扫描层添加策略前必须先创建应用上下文并赋值VPD 本身不管理用户身份,它只读取上下文(CONTEXT)。如果你跳过这步,策略函数里调用 SYS_CONTEXT('HR_CTX', 'dept_id') 永远返回 NULL,结果就是过滤条件失效,用户看到全部数据。先执行 CREATE CONTEXT HR_CTX USING hr.ctx_pkg;,再创建包 hr.ctx_pkg 提供 set_dept 过程应用登录后必须显式调用 hr.ctx_pkg.set_dept(10),否则上下文为空 —— Web 应用常在这里漏掉初始化上下文名称(如 HR_CTX)区分大小写,策略函数里写的名称必须完全一致,否则静默失败DBMS_RLS.ADD_POLICY 的 sec_relevant_cols 参数会触发 FGA 式列级过滤当设置 sec_relevant_cols => 'SALARY,SSN',Oracle 不仅做行过滤,还会对指定列自动加掩码:非授权用户查出来是 NULL(即使策略函数没限制行)。这不是 VPD 默认行为,而是开启“列级敏感控制”的开关,且要求 policy_function 返回的条件中不能包含这些列的显式过滤逻辑,否则冲突。该参数启用后,SELECT * 和 SELECT SALARY 都会把 SALARY 返回为 NULL,除非用户在策略中被明确授权访问和普通 VPD 策略不同,这种模式下无法用 UPDATE 绕过 —— 列值在查询层就被截断了注意兼容性:sec_relevant_cols 在 Oracle 12c 及以后才支持完整列掩码,11g 只能配合 sec_relevant_cols_opt 做简单隐藏策略作用范围容易误配:对象类型选错导致策略不生效object_type 参数不是指表名类型,而是指策略挂载的目标对象种类。填 'TABLE' 行得通,但填 'VIEW' 或 'SYNONYM' 就可能失效 —— 因为 VPD 策略只绑定到基表(base table),视图或同义词上加策略不会自动透传。 通义听悟 阿里云通义听悟是聚焦音视频内容的工作学习AI助手,依托大模型,帮助用户记录、整理和分析音视频内容,体验用大模型做音视频笔记、整理会议记录。

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/16 5:19:19

阵列信号处理实战:从均匀线阵到波束方向图的关键参数解析

1. 均匀线阵的基础原理与工程实现 第一次接触均匀线阵(Uniform Linear Array)时,我被它简洁的数学模型和强大的物理意义所震撼。这种由N个等间距排列的传感器组成的阵列,在雷达、声纳和无线通信系统中有着广泛应用。最让我印象深刻的是,虽然理…

作者头像 李华
网站建设 2026/4/16 5:14:11

从几何到优化:范数球与范数锥的直观理解与应用场景

1. 范数球:从几何形状到数学定义 第一次听到"范数球"这个词时,我脑海中浮现的是一个普通的圆球。但当我真正开始研究这个概念时,才发现它远比我想象的有趣得多。范数球本质上是一个数学上的约束区域,它定义了在特定范数…

作者头像 李华
网站建设 2026/4/16 5:11:20

从qrc到可执行文件:CMAKE_AUTORCC的编译内幕与资源嵌入实战

1. Qt资源系统与.qrc文件的前世今生 第一次接触Qt资源系统时,我完全被这个神奇的设计震撼到了。作为一个长期在Windows平台开发的程序员,习惯了使用.rc资源文件来管理图标、字符串等资源,Qt的.qrc文件给我打开了一扇新的大门。记得当时为了给…

作者头像 李华
网站建设 2026/4/16 5:11:19

SOONet模型MySQL安装配置与数据持久化实战

SOONet模型MySQL安装配置与数据持久化实战 如果你正在部署SOONet这类视频生成或处理模型,可能会遇到一个头疼的问题:模型跑出来的视频、生成的日志、用户的操作记录,这些数据该怎么存?总不能每次都重新生成吧。 没错&#xff0c…

作者头像 李华
网站建设 2026/4/16 5:10:16

从下采样到上采样:图解神经网络中的尺度变换与空洞卷积

1. 神经网络中的尺度变换:从压缩到恢复的魔法 第一次接触神经网络时,最让我困惑的就是特征图尺寸的变化。明明输入是224x224的图片,经过几层卷积怎么就变成了7x7的小方块?后来才发现,这就是下采样和上采样这对孪生兄弟…

作者头像 李华