我用APEX创建了一个工作区,但密码现在无效 .
然后我登录到工作区并更改了密码 . 但是,登录的其他密码不会更改 .
我对oracle中的所有这些术语感到很困惑 .
我有 database username
, workspace username
, database password
, workspace password
. 此外,工作区中还有一个用户管理器,这些用户与提到的其他两个用户不同 . 有些用户可以在 all_users
表中看到,有些则不行 .
所有这些用户之间的关系是什么,这些信息存储在何处?我已经阅读了Oracle的一些材料,但没有提到这些基本术语 .
1 回答
这很令人困惑,因为这里使用了两种不同的(虽然是免费的)技术:
1) Oracle Database Server 具有数据库"users"的概念,您可以通过查询
dba_users
和all_users
看到它们 - 这些是数据库对象的所有者,每个都自动获取同名的模式 . 这些数据库用户中的每一个都有一个由数据库管理的密码 . 在过去,我们曾经为每个最终用户提供单独的数据库用户;如今我们一般不会 . 这些用户存储在数据库数据字典中,仅使用CREATE USER
和ALTER 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或自定义方案)进行身份验证 .