ant*_*pug 8 security permissions authorization roles oracle-apex
因此,Apex拥有"工作空间",可以让您创建三种类型的用户 - 所有这些都是组织内部的.此外,Apex上的个别网站的开发人员似乎无法为其网站提供"用户".
我错过了什么吗?
我需要能够让外部(业务)用户能够访问网站的某些功能,例如,会计只能看到页面A和B,而高管可以看到A,B和C.
我需要能够拥有几组具有不同访问权限的人.
这只能通过创建工作区/组来完成吗?或者这可以在我的网站内部完成吗?
虽然APEX有一个称为"组"的内置用户管理概念,但我必须承认我从未使用它,并且快速阅读文档并不能让我清楚如何使用它们来控制访问(但请参阅Tom的回答在这里).
您可能需要在数据库中创建用户/角色表,并将这些表与APEX授权方案结合使用来控制对页面的访问.可以使用函数体创建单个"PL/SQL函数返回布尔"类型的授权方案:
return my_auth_pkg.is_authorized (p_user => :app_user,
p_app_id => :app_id
p_page_id => :app_page_id);
Run Code Online (Sandbox Code Playgroud)
然后,您将实现该包以查找用户的权限,并决定是否为应用程序和页面ID返回TRUE或FALSE.

或者,您可以直接在授权方案中执行SQL来检查访问权限:

(注意"user_roles"和"role_pages"是我编写的名称,用于表示您的表格)
我只想扩展Tony的答案,这本身就是正确的.我只想向您展示另一种方式,我认为这对初学者来说会更容易,并且省略了表格的创建.
如果您的应用程序使用Apex作为身份验证方案,那么您的用户将通过管理工作区本身进行管理.您可以创建,编辑和删除用户,但您也可以定义组,并将用户链接到组.您可以创建多个"最终用户"类型的用户,并定义几个组,例如"高管".
创建组后,转到要将此组分配给的用户,然后将该组添加到该用户的组中

完成设置后,您仍需要授权方案.事实上你仍然需要一些pl/sql知识,但是由于一些方便的api-work,可以将编码保持在最低限度.
该current_user_in_group做什么它说:它会检查当前用户,如果他说小组交办.随着一些使用一些简单的IF结构的扩展,你可以提升一点!
并不是说我完全推荐这种方法,我发现自己有点单调乏味,你需要有人进入APEX来实际维护用户和他们的团队,但很可能这在你的环境中是可以接受的.但是你可以用它来开始.您可以非常轻松地切换出身份验证方案,并且通过更改授权方案以使其符合新的身份验证方案,您可以在以后轻松快速地进行调整.这当然取决于您的优先事项和目标.