创建数据库链路参考文档(转)
2006-11-07 17:32
337 查看
说明:创建数据库链路,可以实现两个不同的数据库之间的控制访问。以下用简单的例子说明一下创建数据库链路的步骤:
一. 实现功能
主要是实现两台不同机器的两个不同应用的数据交流。假设均使用Oracle数据库,A应用开放两个数据表,B应用开放两个视图。要实现A数据库可以访问B应用的两个视图的数据,B数据库可以访问A应用的两个数据表的数据。
二. 具体步骤
以下简要说明A的创建数据链路及相关的操作:
1. A先使用账号ADMIN_A/ADMIN_A_PSW创建两个表,如:TABLE_A1 和 TABLE_A2。这两个表就是要开放给用户B的。
2. A创建一个用户,如:guest_b/ guest_b_psw。这个用户就是要开放给用户B来访问开放的表的。
代码如下:
create user GUEST_B identified by guest_b_psw default tablespace TABLE_SPACE temporary tablespace PCS_TEMP;
grant connect to GUEST_B;
3. A使用管理员账号为GUEST_B用户授权两个表,以下授以完全控制两个表的权限。
代码如下:
grant all on TABLE_A1 to guest_b;
grant all on TABLE_A2 to guest_b;
4. A在NetManager中建立到B数据库服务器的NetServiceName,也可以修改在Oracle的安装目录下的文件\Oracle\network\admin\tnsnames.ora,在里面添加一个NetServiceName,如“TO_B”。
5. 创建数据链路名为“GOTO_B”,要使用第四步创建的NetServiceName: TO_B。这里假设了B同样创建了一个账号guest_a/guest_a提供给A使用。
CREATE PUBLIC DATABASE LINK " GOTO_B "
CONNECT TO "GUEST_A" IDENTIFIED BY "guest_a"
USING ' TO_B ' ;
另提供一个范例,这个例子创建可以不用配置NetServiceName就可以直接创建:
-- Drop existing database link
drop database link TOCCIC;
-- Create database link
create database link TOCCIC
connect to ZTRY identified by ZTRY
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = fengwenwei)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ZTRY)
)
)';
6. 通过创建同义词来访问B的视图数据。注意:使用时要在视图或表前面加上B提供的视图的真正创建者的名称:ADMIN_B,如这里假设B使用账号ADMIN_B创建了两个视图VIEW_B1和VIEW_B2。另外,是通过使用刚才建立的链路GOTO_B来进行连接。这样,就可以在本地直接使用VIEW_B1和VIEW_B2来访问B的两个视图的数据。如果不创建同义词的话,可以使用方法ADMIN_B. VIEW_B1来进行访问。
create synonym VIEW_B1 for ADMIN_B. VIEW_B1@ GOTO_B;
create synonym VIEW_B2 for ADMIN_B. VIEW_B2@ GOTO_B;
7. 同样道理,B用户也执行上述类似操作,创建一个用户guest_a/ guest_a_psw,然后授权给两个视图,并建立链路。这样,A与B就可以实现数据互通。
三. 小结
1. 在创建链路时,如果是使用生成链路代码测试连接不成功的话,请使用Enterprise Manager Console来创建。
2. 在注意两边的账号使用对应,不要搞混。
3. 注意:Oracle中的SERVICE_NAME可以对应多个SID。
4. 注意如果链路建立不成功,请检查Oracle中的参数配置是否正确,如:global_names需要设置为True。Oracle9i安装时默认为False。
一. 实现功能
主要是实现两台不同机器的两个不同应用的数据交流。假设均使用Oracle数据库,A应用开放两个数据表,B应用开放两个视图。要实现A数据库可以访问B应用的两个视图的数据,B数据库可以访问A应用的两个数据表的数据。
二. 具体步骤
以下简要说明A的创建数据链路及相关的操作:
1. A先使用账号ADMIN_A/ADMIN_A_PSW创建两个表,如:TABLE_A1 和 TABLE_A2。这两个表就是要开放给用户B的。
2. A创建一个用户,如:guest_b/ guest_b_psw。这个用户就是要开放给用户B来访问开放的表的。
代码如下:
create user GUEST_B identified by guest_b_psw default tablespace TABLE_SPACE temporary tablespace PCS_TEMP;
grant connect to GUEST_B;
3. A使用管理员账号为GUEST_B用户授权两个表,以下授以完全控制两个表的权限。
代码如下:
grant all on TABLE_A1 to guest_b;
grant all on TABLE_A2 to guest_b;
4. A在NetManager中建立到B数据库服务器的NetServiceName,也可以修改在Oracle的安装目录下的文件\Oracle\network\admin\tnsnames.ora,在里面添加一个NetServiceName,如“TO_B”。
5. 创建数据链路名为“GOTO_B”,要使用第四步创建的NetServiceName: TO_B。这里假设了B同样创建了一个账号guest_a/guest_a提供给A使用。
CREATE PUBLIC DATABASE LINK " GOTO_B "
CONNECT TO "GUEST_A" IDENTIFIED BY "guest_a"
USING ' TO_B ' ;
另提供一个范例,这个例子创建可以不用配置NetServiceName就可以直接创建:
-- Drop existing database link
drop database link TOCCIC;
-- Create database link
create database link TOCCIC
connect to ZTRY identified by ZTRY
using '(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = fengwenwei)(PORT = 1521))
)
(CONNECT_DATA =
(SID = ZTRY)
)
)';
6. 通过创建同义词来访问B的视图数据。注意:使用时要在视图或表前面加上B提供的视图的真正创建者的名称:ADMIN_B,如这里假设B使用账号ADMIN_B创建了两个视图VIEW_B1和VIEW_B2。另外,是通过使用刚才建立的链路GOTO_B来进行连接。这样,就可以在本地直接使用VIEW_B1和VIEW_B2来访问B的两个视图的数据。如果不创建同义词的话,可以使用方法ADMIN_B. VIEW_B1来进行访问。
create synonym VIEW_B1 for ADMIN_B. VIEW_B1@ GOTO_B;
create synonym VIEW_B2 for ADMIN_B. VIEW_B2@ GOTO_B;
7. 同样道理,B用户也执行上述类似操作,创建一个用户guest_a/ guest_a_psw,然后授权给两个视图,并建立链路。这样,A与B就可以实现数据互通。
三. 小结
1. 在创建链路时,如果是使用生成链路代码测试连接不成功的话,请使用Enterprise Manager Console来创建。
2. 在注意两边的账号使用对应,不要搞混。
3. 注意:Oracle中的SERVICE_NAME可以对应多个SID。
4. 注意如果链路建立不成功,请检查Oracle中的参数配置是否正确,如:global_names需要设置为True。Oracle9i安装时默认为False。
相关文章推荐
- 创建数据库链路参考文档
- 数据库 PSU,SPU(CPU),Bundle Patches 和 Patchsets 补丁号码快速参考 (文档 ID 1922396.1)
- Oralce 创建数据库链路出现ORA-01017错误
- 创建ashx文档对OleDb数据库进行操作
- 数据库学习必须的参考文档
- 如何创建不包含文档的数据库副本
- RDBMS 数据库补丁集补丁号码快速参考-文档 ID 1577380.1
- Day 9:(1)数据库的创建和管理实训_参考答案
- 在Domino中使用Java代理创建文档实例参考
- 关于同操作系统的32bit到64bit的数据库迁移参考文档
- Django,数据模型创建之数据库API参考(转载)
- 关于在.net中动态创建数据库(包括表,视图。。。)有参考别人的代码。。。
- 如何在 Eclipse 帮助中创建 Java API 参考文档
- MySQL 参考手册 3.3创建使用数据库
- 数据库第一次实验创建数据表参考代码
- 4、MySQL 8.0参考手册 连接到服务器并断开连接3.3.1创建和选择数据库
- MongoDB 数据库、集合创建删除与文档插入
- SQL数据库设计规范参考之数据库对象命名详细文档
- 通过beego快速创建一个Restful风格API项目及API文档自动化 本文演示如何快速(一分钟内,不写一行代码)的根据数据库及表创建一个Restful风格的API项目,及提供便于在线测试API的界
- mongoDB简单的数据库创建,文档的增删改,常用命令(二)