1

我尝试安装 Oracle REST 数据服务,但出现此错误:(on java -jar ords.war install)

SEVERE: The pool named: apex_pu is not correctly configured, 
error: ORA-01017: invalid username/password; logon denied

oracle.dbtools.common.jdbc.ConnectionPoolException: 
The pool named: apex_pu is not correctly configured, 
error: ORA-01017: invalid username/password; logon denied

        at oracle.dbtools.common.jdbc.ConnectionPoolException.badConfiguration(ConnectionPoolException.java:88)
        at oracle.dbtools.common.config.db.DatabasePools.badConfiguration(DatabasePools.java:198)
4

7 回答 7

7

提到的池“apex_pu”包含在 conf/apex_pu.xml 文件中,该文件用于 ORDS_PUBLIC_USER。

错误可能来自 2 个原因之一。

1 - ORDS_PUBLIC_USER 帐户密码已更改或过期。更改它并编辑 apex_pu.xml 文件并放置一个 ! 在密码前面。这将触发 ORDS 在下次启动时对密码进行编码。

<entry key="db.password">!NewPASSWORD</entry>

2 - 如果代理授权已被用户撤销以执行 REST 调用,则数据库也会引发此错误。如果发生这种情况,可以通过以下方式重新颁发赠款

alter user USERNAME grant connect through ords_public_user
于 2018-02-04T14:49:39.813 回答
2

我通过更改用户 APEX_PUBLIC_USER 的“默认表空间”解决了这个问题。

java -jar ords.war uninstall 

然后再一次

java -jar ords.war install
于 2015-05-14T11:48:49.670 回答
1

正如 Rice 上面提到的,用户 ORDS_PUBLIC_USER 必须从到期中释放。在使用容器数据库时,此用户可以存在于容器数据库和根数据库中。您必须检查根数据库,在那里它也不能过期。

Cioanta 建议的重新安装不是一个可持续的解决方案。错误的主要原因是 ORDS_PUBLIC_USER 被分配给 DEFAULT 用户配置文件,因此它的密码在 180 天后过期。这应该为连接服务的非交互式用户提供,即使它是 oracle 设置脚本之后的默认设置。

为避免每 180 天出现复发问题,请执行以下操作:

select profile from DBA_USERS where username = 'ORDS_PUBLIC_USER';
--> DEFAULT
select * from V$PARAMETER where name like 'common_user_prefix';
-- > C##

CREATE PROFILE C##UNLIMITED_PWD_EXPIRATION LIMIT
CPU_PER_SESSION UNLIMITED
CPU_PER_CALL UNLIMITED
CONNECT_TIME UNLIMITED
IDLE_TIME UNLIMITED
SESSIONS_PER_USER UNLIMITED
LOGICAL_READS_PER_SESSION UNLIMITED
LOGICAL_READS_PER_CALL UNLIMITED
PRIVATE_SGA UNLIMITED
COMPOSITE_LIMIT UNLIMITED
PASSWORD_LIFE_TIME UNLIMITED
PASSWORD_GRACE_TIME DEFAULT
PASSWORD_REUSE_MAX UNLIMITED
PASSWORD_REUSE_TIME UNLIMITED
PASSWORD_LOCK_TIME 1
FAILED_LOGIN_ATTEMPTS 10
PASSWORD_VERIFY_FUNCTION VERIFY_FUNCTION_11G;

-- optional, ist hier ja schon gesetzt
alter profile <User_profile> limit password_life_time UNLIMITED;

ALTER USER ORDS_PUBLIC_USER PROFILE C##UNLIMITED_PWD_EXPIRATION;
SELECT username, account_status, created, lock_date, expiry_date FROM dba_users  where username = 'ORDS_PUBLIC_USER';
-- no expiration date set nomore 
于 2020-11-11T16:40:26.690 回答
0

将文件 apex_pu.xml 中的用户名、密码更改为 apex.xml 中的值。

于 2015-11-15T16:16:39.160 回答
0

新的 ORDS 3 不一定需要 APEX 才能运行。

ORDS 3 可以在不使用 APEX 的情况下连接到它自己的模式,它还可以连接到 Oracle NOSQL 数据库:Oracle REST 启用 Oracle 数据库和 Oracle NoSQL

基本上你现在有两种方法来设置 ORDS

  1. 使用 APEX

    java -jar ords.war 设置

对 (2) 说不verify/install Oracle REST Data Services schema

PL/SQL Gateway对(APEX,您仍然可以通过 apex_rest_public_user 获得 REST )说是 (1 )

这使用 APEX 公共用户。(APEX_PUBLIC_USER、APEX_LISTENER、APEX_REST_PUBLIC_USER)

  1. Oracle REST 数据服务

    java -jar ords.war 安装

这将创建 ORDS 模式(ORDS_PUBLIC_USER、ORDS_METADATA)

java -jar ords.war setup

说是 (1)verify/install Oracle REST Data Services schema

PL/SQL Gateway对(Apex)说不 (2 )

您可能将 APEX 密码提供给 ORDS 用户。

希望这可以澄清。

于 2015-09-15T09:42:20.037 回答
0

您需要更改 APEX_PUBLIC_USER 密码:

java -jar ords.war user APEX_PUBLIC_USER

并重新输入密码。

于 2016-11-07T16:25:33.517 回答
0

安装 Oracle REST 数据服务后,您必须运行脚本 @apex_rest_config.sql,以创建 APEX_LISTENER 和 APEX_REST_PUBLIC_USER 帐户。

于 2017-01-10T04:40:22.897 回答