【问题标题】:Altering user password of remote database user using REST API in Oracle Apex在 Oracle Apex 中使用 REST API 更改远程数据库用户的用户密码
【发布时间】:2019-11-25 12:02:30
【问题描述】:

我需要在 oracle Apex 中使用 REST API 更改远程数据库用户的密码(数据库根据选择动态更改),可以吗?

我的代码是

 create or replace PROCEDURE PASSWORD_CHANGE(P2_DATABASE VARCHAR2,P2_USERAME VARCHAR2 ,P2_PASSWORD VARCHAR2) IS
SQL_STRING VARCHAR(500);
BEGIN
 SQL_STRING:=' begin accout_change@'||P2_DATABASE||'LINK('''||P2_USERAME||''','''||P2_PASSWORD||'''); end; ';
EXECUTE IMMEDIATE SQL_STRING;

dbms_output.put_line(SQL_STRING);
END;

显示错误为

ORA-06550:第 1 行,第 8 列: PLS-00352:无法访问另一个数据库“SYS_DBLINK” ORA-06550:第 1 行,第 8 列: PLS-00201:必须声明标识符“ACCOUT_CHANGE@SYS_DBLINK” ORA-06550:第 1 行,第 8 列: PL/SQL:语句被忽略

【问题讨论】:

  • 嗨 Dan Mcghan,请找到我写的代码

标签: oracle-apex


【解决方案1】:

远程是指通过数据库链接连接吗?要更改密码,您需要将alter user 权限授予您要更改密码的数据库中存在的用户。

您可能最好创建一个存储过程,该过程在具有alter user 权限的用户拥有的每个远程数据库上更改密码。然后,您将通过 DB 链接向您正在连接的任何用户授予执行该过程的权限。

【讨论】:

  • 我在 Oracle Apex 中创建了一个表单,当我单击提交按钮时,存储过程运行,通过 dblike 更改用户密码,但我收到错误为“ORA-06550:第 1 行,第 8 列: PLS-00352:无法访问另一个数据库 'SYS_DBALINK"
  • 嗨 Dan McGhan,它在从 SQL Developer 执行过程时工作,但在从 Oracle Apex 执行时显示上述错误
  • 究竟是如何创建数据库链接的?生成 DDL,删除任何敏感信息并共享它。您如何连接到 SQL Developer(什么用户)?你是如何授予存储过程的?从执行部分中只有null; 的测试存储过程开始。一旦你开始工作,然后更改你想要使用的代码,看看是否会导致任何问题。
猜你喜欢
  • 1970-01-01
  • 2018-03-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-11-03
  • 1970-01-01
相关资源
最近更新 更多