我刚刚开始浏览Oracle APEX教程,因为我正在考虑进入这项技术。它非常全面,我正在慢慢地在开发人员页面中找到自己的方式。
一个直接跳出来的问题是如何保持用户数据的隔离。为了开始,我正在构建一个简单的CRUD应用程序,我希望每个用户只能访问他们自己的数据。
这是否可以使用APEX GUI界面来实现,或者我是否必须立即深入研究PL/SQL?
谢谢
发布于 2018-10-24 04:20:53
这将是一种虚拟专用网络(Virtual Private Database)。
什么是Oracle虚拟专用数据库?
Oracle虚拟专用数据库(VPD)使您能够创建安全策略,以在行和列级别控制数据库访问。实际上,Oracle虚拟专用数据库会将动态WHERE子句添加到针对应用了Oracle虚拟专用数据库安全策略的表、视图或同义词发出的SQL语句中。
一种(相对)简单的方法是更改您的表,这样您就可以知道哪些数据属于哪个用户- 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 ),则可以使用存储在其中的信息。
https://stackoverflow.com/questions/52952495
复制相似问题