生产库上要修改生产用户的密码,密码修改完后就涉及到修改dblink的密码。

11gR2版本之前只能删除dblink后重建,11gR2版本后可以直接修改。

修改dblink的密码有两种方法:

    1、删除dblink后重建

    2、直接修改dblink的用户密码

下面测试两种方法:

测试库版本:11.2.0.4.0

创建两个dblink,一个PUBLIC另一个PRIVATE

create PUBLIC database link link_101 connect to SYSTEM identified by "123456" using '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydb)
)
)';
create database link link_102 connect to SYSTEM identified by "123456" using '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydb)
)
)';
sys@ORCL>select * from dual@link_101;

DUM
---
X

sys@ORCL>select * from dual@link_102;

DUM
---
X

修改远端数据库密码

SQL> alter user system identified by "654321";

User altered.

sys@ORCL>select * from dual@link_101;
select * from dual@link_101
*
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from LINK_101


sys@ORCL>select * from dual@link_102;
select * from dual@link_102
*
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from LINK_102

方法一:

sys@ORCL>drop public database link link_101;

Database link dropped.

sys@ORCL>drop database link link_102;

Database link dropped.

create PUBLIC database link link_101 connect to SYSTEM identified by "654321" using '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydb)
)
)';

create database link link_102 connect to SYSTEM identified by "654321" using '(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.56.11)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = mydb)
)
)';

sys@ORCL>select * from dual@link_101;

DUM
---
X

sys@ORCL>select * from dual@link_102;

DUM
---
X

方法二:

sys@ORCL>select * from dual@link_101;
select * from dual@link_101
*
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from LINK_101

sys@ORCL>select * from dual@link_102;
select * from dual@link_102
*
ERROR at line 1:
ORA-01017: invalid username/password; logon denied
ORA-02063: preceding line from LINK_102


sys@ORCL>alter public database link link_101 connect to system identified by "654321";

Database link altered.

sys@ORCL>alter database link link_102 connect to system identified by "654321";

Database link altered.

sys@ORCL>select * from dual@link_101;

DUM
---
X

sys@ORCL>select * from dual@link_102;

DUM
---
X

方法二如果提示ORA-01031: insufficient privileges,则赋权grant alter database link to zx;