首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Oracle APEX 18.1 GUI

Oracle APEX 18.1 GUI
EN

Stack Overflow用户
提问于 2018-10-23 23:15:18
回答 1查看 188关注 0票数 1

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

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

这是否可以使用APEX GUI界面来实现,或者我是否必须立即深入研究PL/SQL?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-10-24 04:20:53

这将是一种虚拟专用网络(Virtual Private Database)。

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

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

一种(相对)简单的方法是更改您的表,这样您就可以知道哪些数据属于哪个用户- Apex提供了与当前记录的用户相等的:APP_USER替换字符串:

代码语言:javascript
复制
alter table emp add app_user varchar2(30);

然后,您可以手动向所有WHERE子句(在交互式报表、传统报表等中)添加一个新的条件,例如

代码语言:javascript
复制
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 ),则可以使用存储在其中的信息。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52952495

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档