1. 通过create创建DBLINK

 

createpublicdatabaselinkdblinknameconnectto"DSUSER"  identifiedby"qwer123!"

 using'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS = (PROTOCOL =TCP)(HOST = 109.112.56.181)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME =tchniiss )))'

 

DDL语句创建一个DBLINK1dblink的名字 ,期中23分别是用户名,密码(注意:用户名,密码必须用双引号,否则会报,ORA-00987),4是对连接信息的描述(5是服务器的IP,6数据库实例名),

对于using的后面的描述是可以省去的,通过PL/SQL在创建的时候是可以省去的

 

 createpublicdatabaselinkdblinknameconnectto"DSUSER"  identifiedby"qwer123!"

 using'109.112.56.181/tchniiss '

省去端口描述,只是用IP/实例

2.

oracle中dblink创建方式_ide

图形界面创建

 

选择public,owner初就会出出现在public

 

Name:dblink的名字

 

Usename:to数据库的用户名

 

Password:数据库密码

 

Database:可以上面using后面的任意一种方式。都识别

 

权限:

Private,创建的时候,没有任何关键字,这个dblink只能是创建的用户使用,也只能被创建的用户删除。

 

Public创建的时候加public关键字,可以被整个数据库所有的用户使用,谁都可以删除,删除的必须加public

 

Drop public  databaselinkdbname

 

Shared指是授权的session才能访问,避免过多的连接造成远程服务器崩溃,当使用shared后,本地连接就会断开(减少远程数据库压力)。

 

Dblink的引用:user.table|view@dblink

CREATESYNONYM worker_syn FOR worker@zrhs_link;

创建远程视图:本质上还是dblink表,看到的只有视图

CREATEVIEW worker AS SELECT * FROM worker@zrhs_link where…;

 

 

公有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 remotedatabase

2.创建dblink时,可以使用连接字符串(与tnsname.ora中的),效率较高。

 

 oracle中dblink创建方式_c关键字_02