从11.2开始,如果数据库链建立时用户名密码有误,或者需要更改数据库链验证设置,不需要将数据库链删除后重建了,Oracle提供了ALTER DATABASE LINK的语法。






这只是一个很小的改动,但是使得数据库链的操作方便了许多。没有必要为了输入错误或是更改了用户名密码而重建数据库链了。


SQL> create database link test


 2  connect to test


 3  identified by password


 4  using '172.25.13.229/test08';


数据库链接已创建。


SQL> select * from global_name@test;


select * from global_name@test


                         *


第1行出现错误:


ORA-01017: invalid username/password; logon denied


ORA-02063:紧接着line (起自TEST)




SQL> alter database link test


 2  connect to test


 3  identified by test;


alter database link test


                   *


第1行出现错误:


ORA-01031:权限不足




SQL> select * from session_roles;


ROLE


------------------------------


CONNECT


RESOURCE


DBA


SELECT_CATALOG_ROLE


HS_ADMIN_SELECT_ROLE


EXECUTE_CATALOG_ROLE


HS_ADMIN_EXECUTE_ROLE


DELETE_CATALOG_ROLE


EXP_FULL_DATABASE


IMP_FULL_DATABASE


DATAPUMP_EXP_FULL_DATABASE


DATAPUMP_IMP_FULL_DATABASE


GATHER_SYSTEM_STATISTICS


SCHEDULER_ADMIN


WM_ADMIN_ROLE


JAVA_ADMIN


JAVA_DEPLOY


XDBADMIN


XDB_SET_INVOKER


OLAP_XS_ADMIN


OLAP_DBA


已选择21行。


SQL> select * from session_privs


 2  where privilege like '%DATABASE LINK%';


PRIVILEGE


----------------------------------------


CREATE DATABASE LINK


CREATE PUBLIC DATABASE LINK


DROP PUBLIC DATABASE LINK


SQL> grant alter database link to yangtk;


授权成功。


SQL> alter database link test


 2  connect to test


 3  identified by test;


数据库链接已变更。


SQL> select * from global_name@test;


GLOBAL_NAME


--------------------------------------------------------------------------------


TEST08


SQL> select * from v$version;


BANNER


--------------------------------------------------------------------------------


Oracle Database11gEnterprise Edition Release11.2.0.1.0 - 64bit Production


PL/SQL Release 11.2.0.1.0 - Production


CORE    11.2.0.1.0      Production


TNS for Linux: Version 11.2.0.1.0 - Production


NLSRTL Version 11.2.0.1.0 - Production


奇怪的是DBA权限中竟然不包括ALTER DATABASE LINK的权限,估计由于是新增的权限,Oracle在给DBA授权的时候漏掉了这个权限。



oracle视频教程请关注:http://u.youku.com/user_video/id_UMzAzMjkxMjE2.html