我使用APEX创建了一个工作区,但现在密码无效。
然后我登录到工作区并更改了密码。但是,用于登录的其他密码没有更改。
我对Oracle中所有这些术语感到非常困惑。
我有 数据库用户名
, 工作区用户名
, 数据库密码
, 工作区密码
。此外,工作区中还有一个用户管理器,这些用户与前两种不同。其中一些用户可以在all_users
表中看到,而另一些则不能。
所有这些类型的用户之间有什么关系,这些信息存储在哪里?我已经阅读了一些Oracle的资料,但没有提到这些基本术语。
我使用APEX创建了一个工作区,但现在密码无效。
然后我登录到工作区并更改了密码。但是,用于登录的其他密码没有更改。
我对Oracle中所有这些术语感到非常困惑。
我有 数据库用户名
, 工作区用户名
, 数据库密码
, 工作区密码
。此外,工作区中还有一个用户管理器,这些用户与前两种不同。其中一些用户可以在all_users
表中看到,而另一些则不能。
所有这些类型的用户之间有什么关系,这些信息存储在哪里?我已经阅读了一些Oracle的资料,但没有提到这些基本术语。
这里有两种不同但互补的技术,因此可能会令人困惑:
1) Oracle数据库服务器具有名为“用户”的概念,可通过查询dba_users
和all_users
来查看 - 这些是数据库对象的所有者,每个对象自动获得相同名称的模式。每个数据库用户都有一个密码,由数据库管理。在过去,我们通常为每个最终用户提供单独的数据库用户; 如今,我们通常不这样做了。这些用户存储在数据库数据字典中,只能使用数据库命令(例如CREATE USER
和ALTER USER
)进行操作。
2) Oracle Application Express具有“工作区”的概念,每个工作区可以拥有一个或多个“用户”。这些用户可以是普通的最终用户、开发人员或Apex管理员。每个用户都有一个由Apex管理的密码。这些与数据库上的模式无关。这些用户存储在Apex数据字典中,并且可以使用Apex管理界面或通过对Apex API(在PL/SQL中)的调用进行操作。
每个Apex Workspace关联一个数据库模式(=数据库用户),该模式保存工作区所需的数据库对象(例如表、视图等)。 (注意:一个工作区可以关联多个数据库模式)。
为了使事情更加混乱,在OracleXE(数据库的免费版本)中预安装的Apex默认版本中,Apex用户SYSTEM与数据库SYSTEM用户具有相同的密码。
默认情况下,Apex应用程序使用Apex身份验证方案,该方案根据上述第2点针对Apex数据字典来验证用户。然而,您可以使用备选身份验证方案,这些方案根据其他存储库(例如LDAP、SSO或自定义方案)验证用户。