【问题标题】:Oracle REST Data Service apex_puOracle REST 数据服务 apex_pu
【发布时间】:2015-07-23 15:28:13
【问题描述】:

我尝试安装 Oracle REST 数据服务,但出现以下错误: (在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)

【问题讨论】:

  • 您使用的是哪个版本的数据库?哪个版本的 ORDS?
  • 你安装了Application Express吗?
  • 数据库版本为 XE 11.2.0
  • 是的,我安装了 APEX 5.0

标签: java oracle rest dataservice oracle-ords


【解决方案1】:

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

java -jar ords.war uninstall 

再来一次

java -jar ords.war install

【讨论】:

    【解决方案2】:

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

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

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

    1. 使用 APEX

      java -jar ords.war 设置

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

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

    这使用 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
    

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

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

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

    希望这可以澄清。

    【讨论】:

      【解决方案3】:

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

      【讨论】:

        【解决方案4】:

        您需要更改 APEX_PUBLIC_USER 密码:

        java -jar ords.war user APEX_PUBLIC_USER
        

        然后重新输入密码。

        【讨论】:

          【解决方案5】:

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

          【讨论】:

            【解决方案6】:

            提到的池“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
            

            【讨论】:

              【解决方案7】:

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

              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 
              

              【讨论】:

                猜你喜欢
                • 2021-02-12
                • 2017-05-25
                • 1970-01-01
                • 2015-09-16
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2020-11-04
                相关资源
                最近更新 更多