问题标签 [vpd]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
14378 浏览

database - ORA-28113: 策略谓词有错误

我需要一些有关 Oracle 的 VPD 功能的帮助。我以前从未使用过它,但在网上对此进行了一些研究,但是我遇到了问题。

以下是我已采取的步骤:

QuanTriDL:

表 NhanVien2

QuanTriVPD:

然后:

当连接为 nv001、nv002、nv006 时就可以了。但连接另一个用户:

ORA-28113: 策略谓词有错误

为什么会导致该错误?

0 投票
2 回答
99 浏览

oracle - 阻止当前用户查看他们的记录?VPD-ORACL12C

我正在尝试创建一个函数,以防止当前登录的用户在 scott.emp 表中查看他们自己的记录。

我编写了一个函数来执行该策略。目前返回语句是return 'ename != CURRENT_USER';但是这不起作用。

我不确定是否必须添加新的函数参数,或者是否只需要更改 return 语句。在 return 语句中放置多个引号会编译带有错误的函数。我缺少格式吗?

0 投票
1 回答
201 浏览

oracle - Tomcat JDBC 的 Oracle VPD 会话问题

我的目标是能够使用带有 Oracle VPD 的 Tomcat JDBC 创建“隔离会话”。如何在 Eclipse Link 中实现类似于SessionEventAdapter但具有更多 Tomcat 连接池的概念。我当前的客户端代码如下:

Context.xml中的资源定义

如果需要任何信息,请告诉我。

谢谢。

0 投票
0 回答
149 浏览

oracle - 使用 RLS 的性能影响

Generic_Schema 有一个公用表 GENERIC_TABLE。GENERIC_TABLE 的主键是 COL1 和 COMPANY_ID。

特定公司架构

  1. Schema1 => Comp1
  2. Schema2 => Comp2
  3. SchemaN =>CompN

我们已经在 GENERIC_TABLE 上实现了 RLS。RLS 函数返回一个 clob 值,但在函数内部检索过滤器值的逻辑是:

  1. 将键与其他值进行比较,如果 Comp1 Schema 请求数据,则检索 A|B1|C1 数据并且不检索 ALL_COMPANIES 数据,因为表中存在公司特定值。
  2. 如果 Comp4 检索数据,它将只获得 A|B|C 记录。
  3. 过滤条件需要从另一个返回 rowid 的函数中检索。

现在,问题来了。实施后,RLS 的运行时间要高得多,尽管我们没有看到太多的 I/O。任何人都可以认为这种设计是一个问题,因为这不是一个静态谓词,它是上下文相关的。如果您需要更多输入,请告诉我。

函数定义是

0 投票
1 回答
605 浏览

oracle - Oracle 虚拟专用数据库 (VPD):触发权限/函数生成无效谓词

创建虚拟专用数据库期间的两个问题。

  1. 运行数据库登录触发器需要哪些权限?用户需要特权吗?
  2. 错误信息:功能有问题,但功能运行良好。

来自用户和表创建的代码:

Package01: custid 到 kod 变量

登录触发器:

包2:条件纳入政策

dbms_rls.add_policy

问题1:由于logon_trigger,用户无法登录

问题1:用户没有足够的权限运行触发器,需要授予什么权限?

问题2-1:如何查看跟踪文件?

问题2-2:功能有什么问题?

单独运行功能脚本,它可以工作:

0 投票
1 回答
116 浏览

oracle - oracle ORA-00904:“E3”:vpd 函数中的标识符无效

我正在学习 oracle vpd,所以我创建了以下表格:

然后创建如下策略函数:

接着:

但是当我从 vpdadmin 帐户的工资单中选择 * 时,我收到错误:

那么有什么问题呢?在员工和工资表中已经有 E3 作为 empid 我不知道发生了什么以及如何解决它

0 投票
0 回答
77 浏览

oracle - 即使在授予豁免政策之后,Exchange 子分区也因 VPD 而失败

我有一个执行EXCHANGE SUBPARTITION语句的过程。

根据架构中的所有表都有VPD POLICY保护的事实,

我们有一个存储过程,EXEMPT ACCESS POLICY它在操作之前授予用户并在操作之后撤销它。

通常它工作得很好,但有时,我们仍然会遇到这个异常:

ORA-14136: ALTER TABLE EXCHANGE 受细粒度安全性限制

即使在我们给予资助之后,它也会发生。

例子:

交换子分区代码:

sf_grant_excempt 程序:

它可以发生在不同的表上(这是一个动态的过程),但是语句中涉及的表总是属于同一所有者(总是dwh),EXCHANGE SUBPARTITION同一用户的包的代码也是(dwh) ,并且我们得到的异常不是来自 SF_GRANT_EXCEMPT 过程。因此,赠款正在发挥作用...

0 投票
1 回答
78 浏览

oracle - 创建安全策略功能以允许用户查看特定用户拥有的行

如何修改函数以便用户 (HR1) 可以查看 CTL_UPD_USER 为 VPD_CLERK1 或 VPD_CLERK2 的行?

我对 Oracle 和 pl/sql 很陌生。

我尝试了 OR 的各种用法并得到一个编译错误:pl/sql 语句被忽略,表达式类型错误:

工作代码:

我希望能够以 HR1 身份登录并查看 CTL_UPD_USER 为 VPD_CLERK1 或 VPD_CLERK2 或用户为 HR1 的行。

0 投票
1 回答
484 浏览

oracle - 如何在Oracle中添加一个策略,用户可以从表中选择所有数据,并且只能插入、更新、删除有条件的数据

我有一个像这样的对象名称。

我创建了 3 个用户:HANN、ANNU、THEOTA 我想为这些用户制定 VPD 策略:

  • ANNU 只能选择和修改她的数据。
  • THEOTA 不能选择和修改任何数据。
  • HANN 可以选择所有数据,但只能修改(插入、删除、更新)“假日”列中日期大于当前日期的日期(不能修改部分中的日期)

这是我到目前为止所做的:

我不知道如何为此用户 HANN 应用合适的策略。任何人都可以提出一些想法。

0 投票
0 回答
154 浏览

sql - RSA 中的任何真实世界示例以及 oracle 中的 ORDS

我正在使用 ORDS。我将使用 RAS(真正的应用程序安全)或 VPD 来控制授权。我阅读了 oracle RAS 文档,但不知道如何将它与 ORDS(没有顶点)一起使用。这对于使用 VPD 是正确的,我在其中创建了用户,ords.war但我在数据库中找不到该用户,它只是在 ORDS 层中创建,我不知道如何找出哪个用户连接到数据库以应用 VPD 策略。我的问题是如何定义应用程序用户并与他们连接 ORDS 并从 ORDS 获得响应。

例如:
我有一个启用了休息的模式并且需要授权,现在为了访问它的端点,我看到了一些视频,这些视频添加了带有ords.war文件的用户并使用它登录并获取数据,但这不是我的问题我想添加一些应用程序用户(RAS 中的主体)并为它们设置角色并应用行级证券。我希望这很清楚。

我很感激。