oracle数据链路表路径,oracle数据链路和同义词的使用

>数据链路(link)

是一个在分布式数据库中用来表示到一个远程数据库的连接路径的数据库对象,用来方便地直接调用远程数据库中各种对象。

编辑$ORACLE_HOME/network/admin/tnsnames.ora

abc =

(DESCRIPTION =

(ADDRESS = (PROTOCOL = TCP)(HOST = ora)(PROT =1521))

(CONNECT_DATA =

(SERVICE = DEDICATED)

(SERVICE_NAME = ora10)

)

)

配置远程数据库连接标示符,也可以oracle用户登录后,用netca通过图形界面工具配置。

$sqlpluskitty/redhat@abc测试连接远程数据库。

*这种方法,必须要知道远程数据库的用户名和密码,并且通过这个用户进行对远程数据库进行访问时,权限只有kitty用户在远程数据库的权限。

>创建公共链路(public

database link)

在sqlplus字符界面创建公共数据库链路,这样在本地切换用户后,仍可通过数据库链路对远程数据库进行访问,当然权限只有创建link时remote database指定用户的权限。

$sqlplus / as sysdba

SQL>create public

database link linkabc connect to kitty identified by “redhat” using ‘abc’;

这是建立数据库链路,用远程用户kitty/redhat通过tnsnames.ora定义的abc描述符。

SQL>select * from

III@linkabc;查询远程数据库的表

SQL>delete from

III@linkabc where n=1;删除远程数据的表内容

*注意,DDL操作是不能通过数据链路进行操作的,例如create table。

Select * fromdba_db_links;查询数据库链路信息

Drop public database link

linkabc;删除创建的数据库链路

>使用同义词(synonym)隐藏链路信息

同义词是为数据库对象或其他同义词指定的别名,公用同义词可被数据库中所有用户存取,专用同义词仅能被指定用户及其他被授权的用户存取。

同义词的特点:

可屏蔽对象的名字和其所有者;

为分布式数据库的远程对象提供位置透明性;

为用户简化SQL语句。

Create table kitty.test

(n number);

Create table test (n

number);

Select * from test;系统中有两个test表,分别是sys和kitty用户的

Select * from

kitty.test;

Create public synonym

ktest fro kitty.test;为kitty.test创建同义词,屏蔽掉用户信息

Select * from

ktest;

*注意须先有目标表的访问权限,才能通过该目标表上建立的公共同义词访问该目标表,此处sys用户先有kitty.test的访问权限,故可通过ktest访问该表,而john用户则不行。

Create public synonym

rtest for test@linkabc;对远程表建立同义词屏蔽数据链路信息。

Select * from

dba_synonyms where synonym_name=’KTEST’;

Select * from

dba_synonyms where synonym_name=’RTEST’;查询系统中指定同义词的定义

Drop public synonym

ktest;删除同义词

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值