oracle需要创建dblink给啥权限

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了oracle需要创建dblink给啥权限相关的知识,希望对你有一定的参考价值。

参考技术A

创建全局 DBLink,用户需要有创建 dblink 的权限。

查询用户的dblink 的权限:

select * from user_sys_privs where privilege like upper('%DATABASE LINK%'); 

给需要使用 sysdba 角色的用户赋权:

grant create public database link to dbusername;  

使用已赋权的用户登录 PL/SQL,使用命令:

create database link 数据库链接名 connect to 用户名 identified by 密码 using '本地配置的数据的实例名';  

扩展资料:

查询数据:

selectxxxFROM表名@数据库链接名;

删除 DBLink:

drop /* public */ database link dblink1;  

创建和删除同义词:

create or replace view 视图名 as (select 字段 from 用户.表名@dblink1);  

drop view 视图名;

oracle 中 dblink 的简单使用

当用户要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中必须创建了远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。

查看本地数据库是否拥有创建dblink的权限

select * from user_sys_privs where privilege like upper(\'%DATABASE LINK%\'); 
  • 如果有权限显示如下

  • 如果没有权限,登录到sys用户下面授予相应权限
grant CREATE PUBLIC DATABASE LINK,CREATE DATABASE LINK,DROP PUBLIC DATABASE LINK to local_username; 
  • 创建语法如下

  • 创建案例
create public database link dblink_name  
connect to remote_username identified by remote_password  
using \'(DESCRIPTION =(ADDRESS_LIST =(ADDRESS =(PROTOCOL = TCP)(HOST = 127.0.0.1)(PORT = 1521)))(CONNECT_DATA =(SERVICE_NAME = orcl)))\';

查看创建的dblink的信息

select * from dba_db_links;
select * from all_db_links;
select owner,object_name from dba_objects where object_type=\'DATABASE LINK\';


在本地数据库里面查询远程数据库的表信息

select * from table_name@dblink_name;
drop  public database link  dblink_name;

注释

  • local_username:本地数据库用户名
  • dblink_name:创建dblink的名称
  • remote_username:远程数据库用户名
  • remote_password:远程数据库密码
  • HOST:远程数据库IP
  • SERVICE_NAME:远程数据库实例名
  • table_name:远程数据库表名

参考资料

以上是关于oracle需要创建dblink给啥权限的主要内容,如果未能解决你的问题,请参考以下文章

oracle创建dblink方法

oracle通过DBlink连接oracle

Oracle private dblink和pubic dblink

Oracle跨服务器访问使用dblink

oracle创建用户后需要授哪些权限

Oracle创建dblink