因此,Apex 拥有“工作区”,可让您创建三种类型的用户 - 所有这些用户本质上都是组织内部的。此外,Apex 上单个站点的开发人员似乎没有办法只为他的站点拥有“用户”。
我错过了什么吗?
我需要能够让外部(业务)用户能够访问网站的某些功能,例如,会计只能看到页面 A 和 B,而管理人员可以看到 A、B 和 C。
我需要有能力拥有不同程度的访问权限的几组人。
这只能通过创建工作区/组来完成吗?或者可以仅在我的网站上内部完成吗?
最佳答案
虽然 APEX 有一个名为“组”的内置用户管理概念,但我必须承认我从未使用过它,并且快速阅读文档并没有让我清楚您如何使用它们来控制访问(但请参阅此处的 Tom's answer为了那个原因)。
您可能需要在数据库中创建用户/角色表,并将这些表与 APEX 授权方案结合使用来控制对页面的访问。可以使用函数体创建类型为“PL/SQL 函数返回 bool 值”的单个授权方案:
return my_auth_pkg.is_authorized (p_user => :app_user,
p_app_id => :app_id
p_page_id => :app_page_id);
然后,您将实现该包以查找用户的权限并决定是为应用程序和页面 ID 返回 TRUE 还是 FALSE。
或者,您可以直接在授权方案中执行 SQL 来检查访问权限:
(注意“user_roles”和“role_pages”是我编的名字,代表你的表)
关于security - Oracle Apex 中的授权和用户角色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7905159/