首页 文章

Oracle Express中工作空间和数据库用户的关系是什么?

提问于
浏览
6

我用APEX创建了一个工作区,但密码现在无效 .

然后我登录到工作区并更改了密码 . 但是,登录的其他密码不会更改 .

我对oracle中的所有这些术语感到很困惑 .

我有 database usernameworkspace usernamedatabase passwordworkspace password . 此外,工作区中还有一个用户管理器,这些用户与提到的其他两个用户不同 . 有些用户可以在 all_users 表中看到,有些则不行 .

所有这些用户之间的关系是什么,这些信息存储在何处?我已经阅读了Oracle的一些材料,但没有提到这些基本术语 .

1 回答

  • 9

    这很令人困惑,因为这里使用了两种不同的(虽然是免费的)技术:

    1) Oracle Database Server 具有数据库"users"的概念,您可以通过查询 dba_usersall_users 看到它们 - 这些是数据库对象的所有者,每个都自动获取同名的模式 . 这些数据库用户中的每一个都有一个由数据库管理的密码 . 在过去,我们曾经为每个最终用户提供单独的数据库用户;如今我们一般不会 . 这些用户存储在数据库数据字典中,仅使用 CREATE USERALTER USER 等数据库命令进行操作 .

    2) Oracle Application Express 具有"workspaces"的概念,每个概念可能有一个或多个"users" . 这些用户可以是普通的最终用户,开发人员或Apex管理员 . 这些用户中的每一个都有一个由Apex管理的密码 . 这些与数据库上的模式无关 . 这些用户存储在Apex数据字典中,并使用Apex管理界面或通过调用Apex API(在PL / SQL中)进行操作 .

    每个顶点工作空间都与数据库模式(=数据库用户)相关联,该数据模式保存工作空间所需的数据库对象(例如表,视图等) . (注意:工作空间可以与多个数据库模式相关联) .

    为了使事情更加混乱,在OracleXE(数据库的免费版本)中预安装的默认版本的Apex中,Apex用户SYSTEM具有与数据库SYSTEM用户相同的密码 .

    默认情况下,Apex应用程序使用Apex身份验证方案,该方案根据Apex数据字典对用户进行身份验证(如上面的(2)所述) . 但是,您可以使用其他身份验证方案来对其他存储库(例如LDAP,SSO或自定义方案)进行身份验证 .

相关问题