Oracle APEX 18.1 GUI

时间:2018-10-23 15:15:18

标签: oracle oracle-apex

当我正在考虑使用这项技术时,我才刚刚开始浏览Oracle APEX教程。它非常全面,我正在开发人员页面中慢慢找到自己的方式。

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

使用APEX GUI界面是否可以实现?还是我必须立即进入PL / SQL?

谢谢

1 个答案:

答案 0 :(得分:2)

那将是某种VPD(Virtual Private Database)。

  

什么是Oracle虚拟专用数据库?

     

Oracle虚拟专用数据库(VPD)使您可以创建安全性   在行和列级别控制数据库访问的策略。   本质上,Oracle虚拟专用数据库添加了动态WHERE   针对表,视图或表发出的SQL语句的子句   Oracle虚拟专用数据库安全策略的同义词   已应用。

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

alter table emp add app_user varchar2(30);

然后,您要手动向所有WHERE子句(在交互式报表,经典报表等中)添加新的条件,例如

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;

您应该对所有桌子都这样做吗?不必要;如果您可以将这些表加入包含“所有者”信息的表(例如,上面提到的EMP),则可以使用其中存储的信息。