共计 1718 个字符,预计需要花费 5 分钟才能阅读完成。
这篇文章主要介绍了 DBLINK 怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让丸趣 TV 小编带着大家一起了解一下。
DBLINK 详解
1. 创建 dblink 语法:
CREATE [PUBLIC] DATABASE LINK link
CONNECT TO username IDENTIFIED BY password
USING‘connectstring’
说明:
1) 权限:创建数据库链接的帐号必须有 CREATE DATABASE LINK 或 CREATE PUBLIC DATABASE LINK 的系统权限,用来登录到远程数据库的帐号必须有 CREATE SESSION 权限。这两种权限都包含在 CONNECT 角色中(CREATE PUBLIC DATABASE LINK 权限在 DBA 中)。一个公用数据库链接对于数据库中的所有用户都是可用的,而一个私有链接仅对创建它的用户可用。由一个用户给另外一个用户授权私 有数据库链接是不可能的,一个数据库链接要么是公用的,要么是私有的。
2)link : 当 GLOBAL_NAME=TRUE 时,link 名必须与远程数据库的全局数据库名 global_name)相同;否则,可以任意命名。
3)connectstring:连接字符串,tnsnames.ora 中定义远程数据库的连接串。
4)username、password:远程数据库的用户名,口令。如果不指定,则使用当前的用户名和口令登录到远程数据库。
2. 删除数据库链接的语句:
DROP [PUBLIC] DATABASE LINK zrhs_link
3. 查看已创建的 dblink
select owner,object_name from dba_objects where object_type= DATABASE LINK
4.dblink 的引用:
[user.]table|view@dblink
如:
SELECT * FROM worker@zrhs_link;
SELECT * FROM camel.worker@zrhs_link ;
5. 创建同义词:
对于经常使用的数据库链接,可以建立一个本地的同义词,方便使用:
CREATE SYNONYM worker_syn FOR worker@zrhs_link;
6. 创建远程视图:
CREATE VIEW worker AS SELECT * FROM worker@zrhs_link where…;
现在本视图可与本地数据库中的任何其它视图一样对待,也可以授权给其它用户访问此视图,但该用户必须有访问数据库链接的权限。
其他:
修改 GLOBAL_NAME 的方法:
1. 在远程数据库的 init.ora 文件中将 global_names 设为 false。
或者
2. 用 sys 用户执行如下语句:ALTER SYSTEM SET GLOBAL_NAME=TRUE/FALSE;
修改后重新启动数据库设置才能生效。
数据库全局名称可以用以下命令查出:SELECT * FROM GLOBAL_NAME;
===== dblink 实战 ======
1.dblink 分为公有和私有两类。
公有 dblink 使用 public 修饰关键字。在 create 和 drop 的时候都需要使用 public 关键字。
公有 dblink 对所有人开放,在该 dblink 之上创建的同义词也会随之对所有人开放。(测试并确认,不过测试是在一个实例多个用户之间进行)
私有 dblink 只有创建者可以访问,其上的同义词不能被其他用户访问。需为用户创建视图,并将视图授权给所需用户后,用户才可访问该视图。
另外,不能将带有 dblink 的同义词直接授权给用户。否则报错,其等价于:
grant select on table1@user1 to user2 *
ERROR at line 1:
ORA-02021: DDL operations are not allowed on a remote database
2. 创建 dblink 时,可以使用连接字符串(与 tnsname.ora 中的),效率较高。
感谢你能够认真阅读完这篇文章,希望丸趣 TV 小编分享的“DBLINK 怎么用”这篇文章对大家有帮助,同时也希望大家多多支持丸趣 TV,关注丸趣 TV 行业资讯频道,更多相关知识等着你来学习!