DB_LINK:CREATE/DROP 爱被打了一巴掌 2022-02-04 10:47 136阅读 0赞 ** dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。** --查询DBLINK信息 select owner,object_name from dba_objects where object_type='DATABASE LINK'; select * from dba_db_links; select * from ALL_DB_LINKS; --创建dblink Oracle创建dblink报错:ORA-01017、ORA-02063解决: 根据ORA-01017的提示是连接到另一方的用户密码错误,当9i或10g的版本的Oracle数据库连接11g的版本时,会自动将密码转化为大写。 **密码最好用双引号引起来,否则可能在连接的时候报错 创建dblink一般有两种方式 ,不过在创建dblink之前用户必须有创建dblink的权限。想知道有关dblink的权限,以sys用户登录到本地数据库: select * from user_sys_privs t where t.privilege like upper('%link%'); 查询结果集 : 1 SYS CREATE DATABASE LINK NO 2 SYS DROP PUBLIC DATABASE LINK NO 3 SYS CREATE PUBLIC DATABASE LINK NO 可以看出在数据库中dblink有三种权限: 1.CREATE DATABASE LINK(所创建的dblink只能是创建者能使用,别的用户使用不了) , 2.CREATE PUBLIC DATABASE LINK(public表示所创建的dblink所有用户都可以使用), 3.DROP PUBLIC DATABASE LINK。 在sys用户下,把CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASELINK权限授予给你的用户: grant CREATE PUBLIC DATABASE LINK,DROP PUBLIC DATABASE LINK to scott; 然后以scott用户登录本地数据库 1、已经配置本地服务 create public database link link_name connect to username identified by password using 'connect_string'; 注:link_name是连接名字,可以自定义; username是登陆数据库的用户名; password是登陆数据库的用户密码; connect_string是数据库连接字符串。 数据库连接字符串是当前客户端数据库中TNSNAMES.ORA文件里定义的别名名称.可以用NET8 EASY CONFIG或者直接修改TNSNAMES.ORA里定义. --create database link link名称 --connect to 对方数据库用户名 identified by 对方数据库用户密码 --using '对方数据库ip:端口/实例名'; 2、直接建立链接 create database link link_name connect to username identified by password using '(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = X.X.X.X)(PORT = 1521)) (CONNECT_DATA = (SERVER = DEDICATED) (SERVICE_NAME = SSID) ) )'; host=数据库的ip地址,service_name=数据库的ssid。 其实两种方法配置dblink是差不多的,个人感觉还是第二种方法比较好,这样不受本地服务的影响。 注意: 假如创建全局dblink,则必须使用systm或sys用户,在database前加public。 --dblink使用 SELECT……FROM 表名@数据库链接名; --删除DBLINK DROP DATABASE LINK [name]; --或 DROP PUBLIC DATABASE LINK [name]; 参照:https://baike.baidu.com/item/dblink/15079163?fr=aladdin **希望对你有帮助,祝你有一个好心情,加油!** **若有错误、不全、可优化的点,欢迎纠正与补充!**
还没有评论,来说两句吧...