Oracle APEX 18.1 GUI

Oracle APEX 18.1 GUI,oracle,oracle-apex,Oracle,Oracle Apex,我刚刚开始浏览Oracle APEX教程,因为我正在考虑进入这项技术。它非常全面,我正慢慢地在开发人员页面中找到自己的方法 一个直接跳出来的问题是如何保持用户数据的隔离。首先,我正在构建一个简单的CRUD应用程序,我希望每个用户只能访问自己的数据 这是可以通过APEX GUI界面实现的,还是我必须立即深入PL/SQL 谢谢那可能是某种虚拟专用数据库() 什么是Oracle虚拟专用数据库 Oracle虚拟专用数据库(VPD)使您能够创建安全性 在行和列级别控制数据库访问的策略。 实际上,Oracl

我刚刚开始浏览Oracle APEX教程,因为我正在考虑进入这项技术。它非常全面,我正慢慢地在开发人员页面中找到自己的方法

一个直接跳出来的问题是如何保持用户数据的隔离。首先,我正在构建一个简单的CRUD应用程序,我希望每个用户只能访问自己的数据

这是可以通过APEX GUI界面实现的,还是我必须立即深入PL/SQL


谢谢

那可能是某种虚拟专用数据库()

什么是Oracle虚拟专用数据库

Oracle虚拟专用数据库(VPD)使您能够创建安全性 在行和列级别控制数据库访问的策略。 实际上,Oracle虚拟专用数据库添加了一个动态 子句添加到针对表、视图或对象发出的SQL语句 Oracle虚拟专用数据库安全策略的同义词 申请了

一种(相对)简单的方法是更改表,以便知道哪些数据属于哪个用户-Apex提供了
:APP_user
替换字符串,该字符串等于当前登录的用户:

alter table emp add app_user varchar2(30);
然后,您将手动向所有
WHERE
子句(在交互式报告、经典报告等中)添加一个新的条件,例如


所有的桌子都要这样吗?不一定;如果您可以将这些表连接到包含“所有者”信息的表(例如,上面提到的EMP I),您可以使用其中存储的信息。

您可能会发现其中一些有用的信息:感谢您提供了这样一个全面且信息丰富的答案。
select empno, ename, job, sal
from emp
where deptno = :P1_DEPTNO
  -- add this to all queries
  and app_user = :APP_USER
  -- end of add this ...
order by ename;