问题标签 [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.
database - ORA-28113: 策略谓词有错误
我需要一些有关 Oracle 的 VPD 功能的帮助。我以前从未使用过它,但在网上对此进行了一些研究,但是我遇到了问题。
以下是我已采取的步骤:
QuanTriDL:
QuanTriVPD:
然后:
当连接为 nv001、nv002、nv006 时就可以了。但连接另一个用户:
ORA-28113: 策略谓词有错误
为什么会导致该错误?
oracle - 阻止当前用户查看他们的记录?VPD-ORACL12C
我正在尝试创建一个函数,以防止当前登录的用户在 scott.emp 表中查看他们自己的记录。
我编写了一个函数来执行该策略。目前返回语句是return 'ename != CURRENT_USER';
但是这不起作用。
我不确定是否必须添加新的函数参数,或者是否只需要更改 return 语句。在 return 语句中放置多个引号会编译带有错误的函数。我缺少格式吗?
oracle - Tomcat JDBC 的 Oracle VPD 会话问题
我的目标是能够使用带有 Oracle VPD 的 Tomcat JDBC 创建“隔离会话”。如何在 Eclipse Link 中实现类似于SessionEventAdapter但具有更多 Tomcat 连接池的概念。我当前的客户端代码如下:
Context.xml中的资源定义
如果需要任何信息,请告诉我。
谢谢。
oracle - 使用 RLS 的性能影响
Generic_Schema 有一个公用表 GENERIC_TABLE。GENERIC_TABLE 的主键是 COL1 和 COMPANY_ID。
特定公司架构
- Schema1 => Comp1
- Schema2 => Comp2
- SchemaN =>CompN
我们已经在 GENERIC_TABLE 上实现了 RLS。RLS 函数返回一个 clob 值,但在函数内部检索过滤器值的逻辑是:
- 将键与其他值进行比较,如果 Comp1 Schema 请求数据,则检索 A|B1|C1 数据并且不检索 ALL_COMPANIES 数据,因为表中存在公司特定值。
- 如果 Comp4 检索数据,它将只获得 A|B|C 记录。
- 过滤条件需要从另一个返回 rowid 的函数中检索。
现在,问题来了。实施后,RLS 的运行时间要高得多,尽管我们没有看到太多的 I/O。任何人都可以认为这种设计是一个问题,因为这不是一个静态谓词,它是上下文相关的。如果您需要更多输入,请告诉我。
函数定义是
oracle - Oracle 虚拟专用数据库 (VPD):触发权限/函数生成无效谓词
创建虚拟专用数据库期间的两个问题。
- 运行数据库登录触发器需要哪些权限?用户需要特权吗?
- 错误信息:功能有问题,但功能运行良好。
来自用户和表创建的代码:
Package01: custid 到 kod 变量
登录触发器:
包2:条件纳入政策
dbms_rls.add_policy
问题1:由于logon_trigger,用户无法登录
问题1:用户没有足够的权限运行触发器,需要授予什么权限?
问题2-1:如何查看跟踪文件?
问题2-2:功能有什么问题?
单独运行功能脚本,它可以工作:
oracle - oracle ORA-00904:“E3”:vpd 函数中的标识符无效
我正在学习 oracle vpd,所以我创建了以下表格:
然后创建如下策略函数:
接着:
但是当我从 vpdadmin 帐户的工资单中选择 * 时,我收到错误:
那么有什么问题呢?在员工和工资表中已经有 E3 作为 empid 我不知道发生了什么以及如何解决它
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 过程。因此,赠款正在发挥作用...
oracle - 创建安全策略功能以允许用户查看特定用户拥有的行
如何修改函数以便用户 (HR1) 可以查看 CTL_UPD_USER 为 VPD_CLERK1 或 VPD_CLERK2 的行?
我对 Oracle 和 pl/sql 很陌生。
我尝试了 OR 的各种用法并得到一个编译错误:pl/sql 语句被忽略,表达式类型错误:
工作代码:
我希望能够以 HR1 身份登录并查看 CTL_UPD_USER 为 VPD_CLERK1 或 VPD_CLERK2 或用户为 HR1 的行。
oracle - 如何在Oracle中添加一个策略,用户可以从表中选择所有数据,并且只能插入、更新、删除有条件的数据
我有一个像这样的对象名称。
我创建了 3 个用户:HANN、ANNU、THEOTA 我想为这些用户制定 VPD 策略:
- ANNU 只能选择和修改她的数据。
- THEOTA 不能选择和修改任何数据。
- HANN 可以选择所有数据,但只能修改(插入、删除、更新)“假日”列中日期大于当前日期的日期(不能修改部分中的日期)
这是我到目前为止所做的:
我不知道如何为此用户 HANN 应用合适的策略。任何人都可以提出一些想法。
sql - RSA 中的任何真实世界示例以及 oracle 中的 ORDS
我正在使用 ORDS。我将使用 RAS(真正的应用程序安全)或 VPD 来控制授权。我阅读了 oracle RAS 文档,但不知道如何将它与 ORDS(没有顶点)一起使用。这对于使用 VPD 是正确的,我在其中创建了用户,ords.war
但我在数据库中找不到该用户,它只是在 ORDS 层中创建,我不知道如何找出哪个用户连接到数据库以应用 VPD 策略。我的问题是如何定义应用程序用户并与他们连接 ORDS 并从 ORDS 获得响应。
例如:
我有一个启用了休息的模式并且需要授权,现在为了访问它的端点,我看到了一些视频,这些视频添加了带有ords.war
文件的用户并使用它登录并获取数据,但这不是我的问题我想添加一些应用程序用户(RAS 中的主体)并为它们设置角色并应用行级证券。我希望这很清楚。
我很感激。