DBLINK ORA-01031

今天在做数据接口的时候发现了DBLINK ORA-01031的一些问题,整个场景回顾如下:一

场景一:

1、首先默认用户是没有创建DBLink的权限的,因此一般人都使用SYS创建一个PUblic 的dblink供所有用户使用。

>conn / as sysdba

>CREATE database link crmdb connect to "crm" identified by "crm" USING 'crm';


2、而创建DBLINK视图的话,则使用用户test的权限创建,这样如果直接运行如下则会报权限错误,

>conn test/test 

>CREATE VIEW viewdblink as select * from tab_a@crmdb;

ORA-01031:权限不足


虽然用户可以使用DBLINK进行数据查询,如下

> select * from tab_a@crmdb;

但是无法创建在视图中使用该dblink,要解决该问题,有2中方法:

(1)给用户赋予create any view 权限

grant create database link to test;

grant create any view to test;

(2)用sys用户来建立该视图

>CREATE VIEW test.viewdblink as select * from tab_a@crmdb;


场景二:

由于权限问题,规定该dblink只能被该用户使用,而其它用户则不能使用和查看,注意以下几者的区别:

grant create database link to test;

grant create  database link to user ; --只有user用户能使用的dblink
grant create public  database link to user ;--所有用户都可以使用的dblink
grant drop public  database link to user; --删除dblink的权限


你可能感兴趣的:(Oracle,DBA)