vpd安全策略的使用

2023-11-10

1.首先我们创建用户vpd,并给与一定的权限

create user vpd identified by 123456
grant resource, connect to vpd;
grant execute on dbms_rls to vpd;
grant select any dictionary to vpd;
ALTER USER vpd QUOTA UNLIMITED ON USERS;--对表空间users无权限

2.使用刚创建的vpd用户创建一个test表

create table test as select * from dba_objects;
select * from test

3.创建策略函数 ,如果是vpd用户则可以查看test表,否则不能查询到test表中数据


create or replace function f_limit_access ( vc_schema varchar2, vc_object varchar2 ) return varchar2 as
vc_userid varchar2(100);
begin
    select SYS_CONTEXT('USERENV','SESSION_USER') into vc_userid from dual;
    if (trim(vc_userid)='vpd')
      then
        return '1=1';
        else
          return '1=0';
          end if;
end;

4,应用策略函数

begin
  dbms_rls.add_policy(object_schema => 'vpd',
  object_name => 'test',policy_name => 'VPD_TEST',
  function_schema => 'vpd',
  policy_function => 'F_LIMIT_ACCESS');
end;

5.查看策略函数返回的条件

select policy_name, SEL, INS, UPD, DEL, IDX, CHK_OPTION, ENABLE from user_policies;

6.授权给sym用户查看test表的权限,并且登录sym后查询该表,结果为无法获取该表数据,说明安全策略成功应用

grant select on test to sym;
select * from vpd.test

 

7.删除安全策略后让sym再查询一遍 ,这时sym就可以查询到test表中的数据了

begin 

  sys.dbms_rls.drop_policy(object_schema => 'vpd',  

                           object_name => 'test',  

                           policy_name => 'VPD_TEST');  

end;
select * from vpd.test

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

vpd安全策略的使用 的相关文章

  • 什么是 Oracle 会话?

    我使用的是 Oracle 11g 我正在寻找 Oracle 会话的良好解释 我用谷歌搜索了这个 但奇怪的是 没有一个网站包含任何关于预言机会话是什么的解释 我的具体问题是 1 什么是预言机会话 2 一个连接对象是否总是与一个 oracle
  • 在 Oracle 中如何将多行组合成逗号分隔的列表? [复制]

    这个问题在这里已经有答案了 我有一个简单的查询 select from countries 结果如下 country name Albania Andorra Antigua 我想在一行中返回结果 如下所示 Albania Andorra
  • 如何设计一个存储非常大数据的表?

    我需要在Oracle中设计一个表 每天将存储2 5TB的数据 它可以增长到 200TB 超过 200TB 时记录将被清除 将其保留在 OLTP 中是一个可行的选择 还是需要将其转移到数据仓库 DB 请建议我在设计该表或数据库的架构时应牢记的
  • Where 子句中的 If 语句

    我正在处理一个在 WHERE 子句中包含 IF 语句的查询 但是 PL SQL Developer 在执行时给出了一些错误 谁能帮我正确的查询吗 这是查询 SELECT t first name t last name t employid
  • 将 MS SQL Server 数据库连接到 Oracle 11g 数据库

    我正在努力创建从 Oracle 数据库到一个 SQL Server 的数据库链接 为此 我添加了以下内容 In file tnsnames ora sqlUserConn DESCRIPTION ADDRESS PROTOCOL tcp H
  • 将整数值从数据库列转换为Oracle中的文本

    我对数据库有一个要求 1 表ABC 列 check amount number number 18 4 这基本上包含例如支票金额 3000 50 支付给雇员 现在签发了一张支票 该支票包含数字和文本形式的 check amount 例如 支
  • SQL Fiddle 输出错误

    其实我对 PL SQL 还很陌生 我在 SQL Fiddle 中使用 oracle pl sql 创建了下表 create table Employee name varchar2 100 id integer salary integer
  • 如何在 Pro*C 查询中指定变量表达式列表?

    我尝试优化的 Pro C 查询出现问题 解释一下 我们的应用程序在一个巨大的数据库中搜索行 这些行存在于多种语言中 旧代码为数组中的每种语言选择一行 现在 由于这些查询是我们应用程序中最耗时的部分 因此我只想进行一个直接写入数组的查询 语言
  • 查看oracle中重复行的所有数据

    我有一个有 6 列的表 id name type id code lat long 前三个是必需的 ID是私钥 按序列自动插入 我有一些重复的行 正如两者所定义的name and type id是平等的 但我想查看受骗者的所有数据 我可以很
  • oracle lag 函数与 group by

    我有一个查询忽略从前一个值增加的值 例如 采用下表 col1 col2 col3 5 1 A 4 2 A 6 3 A 9 4 B 8 5 B 10 6 B 现在进行以下查询 select col1 from select col1 lag
  • Oracle PL/SQL 将行类型作为构造函数参数传递

    是否可以将 table rowtype 作为构造函数中的参数传递 我有这样的东西 这有效 CREATE OR REPLACE TYPE shape AS OBJECT name VARCHAR2 30 area NUMBER CONSTRU
  • 无法连接 ORA-12514: TNS: 侦听器当前不知道连接描述符中请求的服务

    我想将 PLSQL 开发工具连接到数据库 但由于以下错误而无法连接 ORA 12514 TNS 侦听器当前不知道连接描述符中请求的服务 检查下面的配置 如何配置才能使其正常工作 SQL gt select value from v para
  • 我可以从匿名 PL/SQL 块向 PHP 返回值吗?

    我正在使用 PHP 和 OCI8 执行匿名 Oracle PL SQL 代码块 有没有什么方法可以让我绑定一个变量并在块完成后获取其输出 就像我以类似的方式调用存储过程时一样 SQL declare something varchar2 I
  • 以无法破坏的方式限制表中允许的记录数量

    我们有一个 Web 应用程序 Grails 我们将根据用户数量为其出售许可证 数据库 Oracle 10g 中有一个表保存用户 客户将托管自己的软件和数据库副本 有人可以建议一些策略来限制允许存在于用户表中的记录数量 从而使客户无法合理地破
  • 是否允许在流水线 PL/SQL 表函数中使用 SELECT?

    管道函数的文档指出 在 SQL 语句 通常是SELECT 并且在大多数示例中 管道函数用于数据生成或转换 接受客户作为参数 但不发出任何 DML 语句 现在 从技术上讲 可以使用 SELECT 而不会出现 Oracle 中的任何错误 ORA
  • 如何检查 Oracle 数据库是否存在长时间运行的查询

    我的应用程序使用 Oracle 数据库 速度缓慢或似乎完全停止 如何找出哪些查询成本最高 以便我可以进一步调查 这显示当前处于 活动 状态的 SQL select S USERNAME s sid s osuser t sql id sql
  • 什么是 Oracle 数据集成器?

    什么是ODI ODI的实际用途是什么 oracle data integrator工具如何帮助编程 sql Developer 工具和 ODI 工具实际上有什么区别 真的厌倦了在某些网站上找到的定义 如果有人能提出 gud 解释 那就太好了
  • ROWNUM 的 OracleType 是什么

    我试图参数化所有现有的 sql 但以下代码给了我一个问题 command CommandText String Format SELECT FROM 0 WHERE ROWNUM lt maxRecords command CommandT
  • ORA-01749: 您不能向自己授予/撤销权限

    我正在运行以下查询RATOR MONITORING授予引用权限的架构RATOR MONITORING CONFIGURATION SMSC GATEWAY表到RATOR MONITORING schema GRANT REFERENCES
  • 使用 xmlagg 时出现子查询错误和太多值

    我在连接许多大型表中的所有数据时遇到问题 我昨天对此提出了问题 但不幸的是 listagg 似乎不是一个好的选择 链接子查询返回多行 https stackoverflow com questions 54651144 subquery r

随机推荐

  • Java自动化测试面向对象之package

    Java自动化测试面向对象之package 文章目录 Java自动化测试面向对象之package Java 包 package Java 包 package 为了更好地组织类 Java 提供了包机制 用于区别类名的命名空间 包的作用 1 把
  • vue3 自定义组件 v-model 原理解析

    1 input 中的 v model
  • 史诗级的突破,如何让GPT接口调用能绕过4000 tokens 的长度限制

    最近很高兴有机会较为全面深入地研究GPT ChatGPT这一热门技术 学到了不少东西 当然也遇到不少问题 其中一个问题就是 所有的GPT模型 都会有输入输出长度 加起来 的限制这个问题 就好像一个紧箍咒似的 我这段时间看到很多不同的一些办法
  • 过度绘制和渲染

    最近在解过度绘制的问题单时 对过度绘制和渲染进行了简要的学习 UI优化和UI渲染 UI 优化究竟指的是什么呢 应该包含两个方面 一个是效率的提升 我们可以非常高效地把 UI 的设计图转化成应用界面 在不同并且保证 UI 界面尺寸和分辨率的手
  • JMX经验点滴

    使用Java构建的大规模分布式架构网站 为了了解整个网站中的每个节点运行状况 在考虑性能 开发速度而不考虑多开发语言支持的情况下 JMX无疑是最适合的方式 JMX Java 管理扩展 Java Management Extensions 是
  • 使用springcloud feign时 token认证

    我们在项目中使用feign进行调用时 往往需要进行身份验证 而feignclient需要按照http调用方的格式来书写 这时候呢 我们可以使用这种方式来进行加入身份验证 public class FeignConfig implements
  • tcp服务端通讯+按键发送协议

    import threading import socket import json import keyboard TCP服务器配置 HOST 0 0 0 0 PORT 8888 创建TCP服务端 server socket socket
  • kodi 下载插件失败/无法刮削

    kodi 下载插件失败 无法刮削 很有可能是被墙 或者DNS被污染 解决的方法很简单 修改host 并不是修改nas win kodi上的host 一个一个修改太麻烦了 而是在路由器上修改host 这样一来所有的设备都可以使用了 现在的路由
  • 【C++】STL初识

    目录 STL背景和定义 STL分类 STL三大分类 容器 算法 迭代器 STL六大组件 STL容器使用案例 创建容器 遍历容器 容器嵌套容器 STL背景和定义 STL是标准模板库 Standard Template Library STL
  • 基础算--简单枚举

    简单枚举 顾名思义 枚举便是依次列举出所有可能产生的结果 根据题中的条件对所得的结果进行逐一的判断 过滤掉那些不符合要求的 保留那些符合要求的 也可以称之为暴力算法 枚举结构 循环 判断语句 应用场合 在竞赛中 并不是所有问题都可以使用枚举
  • 【Vue3】SplitPane 可拖拽分隔面板组件

    1 效果图 2 组件完整代码
  • 算法笔记--最大连续1的个数Ⅲ

    leetcode题目链接 1004 最大连续1的个数 III 题目描述 给定一个二进制数组 nums 和一个整数 k 如果可以翻转最多 k 个 0 则返回 数组中连续 1 的最大个数 思路 这里可以转换思路 让题意更加明确 即 求一个最大连
  • 五十六.L1-017 到底有多二

    include
  • 【华为机试题】华为机试真题附解答(2020.9.16/c++)

    第一题题目描述 五键键盘只可以输入a ctrl c ctrl x ctrl v ctrl a 对应的功能为 a 输出到屏幕上a字母 ctrl c 复制选定内容到剪贴板 ctrl x 复制选定内容到剪贴板并且清空当前选定内容 ctrl v 将
  • Vue.js面试题整理

    一 什么是MVVM MVVM是Model View ViewModel的缩写 MVVM是一种设计思想 Model 层代表数据模型 也可以在Model中定义数据修改和操作的业务逻辑 View 代表UI 组件 它负责将数据模型转化成UI 展现出
  • 刷脸支付的产品也在慢慢的完善当中

    如今 春暖花开 万物复苏 在经历了疫情的严冬之后 相信 真正的春天即将来临 在这样的背景下 刷脸支付 这一被疫情耽误了的新的支付方式 或许将迎来一次全新的爆发 说 2019年被称为刷脸支付的元年 在很多人满怀期待刷脸支付或将在2020年进一
  • Java实现加密(一)AES加解密

    目录 1 背景知识 2 AES简介 3 AES的加密过程 AES处理单位 字节 4 Java实现 4 1 生成密钥和偏移量 4 2 AESUtil java 源码 4 3 执行结果 4 4 线上验证 1 背景知识 在密码学中 加密算法分为单
  • facebook 邀请好友

    话不多说 直接上代码了 邀请好友 public void sendFilteredChallenge final Vector
  • 多表连接查询详解

    1 1 多表连接查询的概念 由于数据库中很多数据被分散到多个数据库表中 在查询数据时就经常出现要查的数据来自多个表中 此时就必须采用多表连接查询 多表连接查询是数据库查询中常见的查询方式 多表连接查询分为内连接和外连接 1 2 内连接的概念
  • vpd安全策略的使用

    1 首先我们创建用户vpd 并给与一定的权限 create user vpd identified by 123456 grant resource connect to vpd grant execute on dbms rls to v