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

时间:2015-04-06 04:01:37

标签: oracle oracle11g oracle-apex

我已经使用APEX创建了一个工作区,但密码现在无效。

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

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

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

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

1 个答案:

答案 0 :(得分:10)

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

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

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

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

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

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