ORA-01017:通过dblink无效的用户名/密码

时间:2018-03-29 05:19:37

标签: oracle dblink

我通过dblink

选择数据的程序存在一些问题

我可以正常选择源表并且过程成功编译但是当我运行此过程时我收到错误

create or replace procedure proc1 is
begin

  execute immediate 'truncate table table1';

  INSERT /*+ APPEND NOLOGGING PARALLEL */
  INTO table1
         SELECT smthng
              FROM table1@dblink uo
              LEFT JOIN table2@dblink uoc
                ON uoc.id = uo.id
              LEFT JOIN table3@dblink uos
                ON uos.id = uoc.id;
  COMMIT;


end;

SQL> execute proc1 
begin proc1; end;
ORA-01017: invalid username/password; logon denied
ORA-02063: предшествующий line из dblink 
ORA-06512: на  "proc1", line 8
ORA-06512: на  line 1

有任何解释吗?

1 个答案:

答案 0 :(得分:1)

要解决这个问题,您需要知道您使用的是哪个版本的 Oracle 数据库,您需要向我们解释数据库链接是如何创建的。是公共链接吗?是匿名的吗?在查询中使用的所有表上指定的 DOP(并行度)是多少。谁在执行查询?它是您通过远程数据库链接使用的同一用户吗?此用户是否与在本地执行查询的用户具有相同的密码?

我可以更糟:你使用外部识别的 ops$-account 吗?还是这最后一个分配了密码?

最后但并非最不重要的是通过审计表检查无法登录到远程数据库的用户。告诉我这是您在本地查询中使用的同一用户吗?