是否可以 create/manage 来自内部的用户和 Oracle APEX 应用程序?

Is it possible to create/manage a user from inside and Oracle APEX application?

我在 APEX 中开发了一个应用程序供我公司的一些工程师使用,但他们每周两次左右打电话给我,要求我添加另一个用户。有什么方法可以将用户创建页面构建到 APEX 应用程序中,以便它可以完全由用户处理吗?

当然可以。如果要创建 APEX 用户,可以使用 APEX_UTIL.CREATE_USER procedure.

根据具体情况,更常见的做法是创建您自己的 user table 自定义身份验证例程,然后修改您的应用程序以使用该自定义身份验证例程,而不是依赖 APEX 用户。这往往更容易管理更复杂的权限(例如,支持多个不同角色的应用程序)或与其他身份验证提供程序(如 LDAP/Active Directory)集成。

要在 APEX 环境之外创建新用户,您可以使用 PL/SQL。确保将安全组设置为将为其创建新用户的工作区 ID。 运行此语句为数据库系统用户 请参阅下面的代码片段:

  declare
    l_workspace_id number;
    l_group_id     number;
  begin
    [...]
    l_workspace_id := apex_util.find_security_group_id('Your Workspace Name');

    apex_util.set_security_group_id(l_workspace_id);

    l_group_id := apex_util.get_group_id('Your User-Group');

    apex_util.create_user(p_user_name           => 'Your User-Name',
                          p_email_address       => 'eMail Address',
                          p_first_name          => '...',
                          p_last_name           => '...',
                          p_default_date_format => '...',
                          p_web_password        => '...',
                          p_group_ids           => l_group_id,  
                          p_default_schema      => '...');

    [...]
  end;