Oracle Express中工作区和数据库用户之间有什么关系?

8

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

然后我登录到工作区并更改了密码。但是,用于登录的其他密码没有更改。

我对Oracle中所有这些术语感到非常困惑。

我有 数据库用户名, 工作区用户名, 数据库密码, 工作区密码。此外,工作区中还有一个用户管理器,这些用户与前两种不同。其中一些用户可以在all_users表中看到,而另一些则不能。

所有这些类型的用户之间有什么关系,这些信息存储在哪里?我已经阅读了一些Oracle的资料,但没有提到这些基本术语。

1个回答

13

这里有两种不同但互补的技术,因此可能会令人困惑:

1) Oracle数据库服务器具有名为“用户”的概念,可通过查询dba_usersall_users来查看 - 这些是数据库对象的所有者,每个对象自动获得相同名称的模式。每个数据库用户都有一个密码,由数据库管理。在过去,我们通常为每个最终用户提供单独的数据库用户; 如今,我们通常不这样做了。这些用户存储在数据库数据字典中,只能使用数据库命令(例如CREATE USERALTER 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或自定义方案)验证用户。


1
非常感谢,这对我帮助很大。最糟糕的是它一开始使用相同的密码,然后变成完全不同的东西。 - leetom
你是不是指“内部工作区”?还是系统也适用? - Scott
我有一个问题,请问关于应用程序用户或数据库用户,我想创建应用程序,是否可以为每个用户创建数据库用户,而不是应用程序用户?因为对于数据库用户,您可以管理其配置文件并控制登录、注销和闲置时间后的注销,并且还可以管理APEX应用程序用户的这些配置文件。以前在Oracle Forms中,我创建了应用程序用户,但所有应用程序用户最终都使用一个数据库用户登录,我无法进行物理管理,例如15分钟后自动注销。您有什么建议? - Ziad Adnan
@ZiadAdnan那可能是一个全新的问题。简短回答是,“是的”,你可以使用数据库用户来验证APEX应用程序;然而,由于APEX使用了数据库会话池,配置文件功能将无法按你的期望工作。 - Jeffrey Kemp
如果我使用应用程序用户,比如用户表,我能否在用户闲置10分钟后使用户会话注销?如果可以的话,请问具体的实现思路是什么?非常感谢。 - Ziad Adnan

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接