Oracle同义词(synonyms)
从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。这种映射关系体现在同个数据库中通过表别名进行访问,也体现在访问远程数据库中某张表,这时候就需要创建dblink。
同义词创建权限
用户可以在自己的模式中创建同义词,这需要具有CREATE SYNONYM这个系统权限。如果希望在其它用户的模式中创建同义词,则需要具有CREATE ANY SYNONYM这个系统权限。普通用户创建的同义词一般都是私有同义词,公有同义词一般由DBA创建,普通用户如果希望创建同义词,则需要CREATE PUBLIC SYNONYM这个系统权限。
创建同义词
create public synonym table_name1 for user.table_name2。
table_name1是同义词名称,table_name2是具体要为哪张表创建同义词,table_name1是table_name2的别名。
假设当前用户为了方便地访问scott用户的表dept,可以执行下面的CREATE语句创建同义词:CREATE PUBLIC SYNONYM sy_dept FOR scott.dept;
这样在具有相应权限的情况下,当前用户就可以通过这个同义词代替原来的表进行相应操作:
通过同义词查询:SELECT deptno,dname,loc FROM sy_dept;
通过同义词写入一行数据:INSERT INTO sy_dept(deptno,dname,loc) VALUES(100,'NETWORK','BEIJING');
用户可以删除自己创建的同义词,如果要删除其他用户创建的同义词,则要具有DROP ANY SYNONYM系统权限。DBA可以删除所有的公共同义词,普通用户需要具有DROP PUBLIC SYNONYM系统权限,才能删除公共同义词。同义词被删除以后,它的相关信息也将从数据字典中删除。
dblink
此外如果要创建一个远程的数据库上的某张表的同义词,需要先创建一个Database Link(数据库连接)来扩展访问,然后再创建数据库同义词:create synonym table_name for table_name@DB_Link;
DB_Link就是远程要访问的数据库地址别名,table_name就是要访问的远程数据库服务器上的某张表。
创建数据库链接:
create database link linkname
connect to username
identified by password
using 'connection string';
connection string可以有两种形式:
1,在文件tnsnames.ora配置的名称:
例如:
CDRDL =(DESCRIPTION =(
ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.147.129.29)(PORT = 2521)))
(CONNECT_DATA =(SERVICE_NAME = cdrdb))
)
tnsnames.ora是Oracle数据库服务器安装路径下的配置文件,默认路径:X:\oracle\product\10.2.0\db_1\NETWORK\ADMIN文件下。
此时也可以写成:
create database link linkname
connect to username
identified by password
using 'CDRDL';
2,也可以直接使用‘=’号后面的字符串,
例如:
create database link linkname
connect to username
identified by password
using '(DESCRIPTION =(
ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 10.147.129.29)(PORT = 2521)))
(CONNECT_DATA =(SERVICE_NAME = cdrdb))
)';
相关推荐
Oracle Dblink and synonym(同义词) 授权 创建 以及使用
主要是Oracle数据库的同义词和数据库连接的一些应用,在不同实例之间进行连接!
主要介绍了Oracle报存储过程中调用DBLink同义词出现错误:PLS-00201: 必须声明标识符的相关资料,需要的朋友可以参考下
本文介绍的是关于Oracle同义词+dblink的实际应用,下面话不多说了,来一起看看详细的介绍吧。 业务需求:原数据库(10.2.0.4.0),新数据库(11.2.0.3) 由于程序的需求原因,现在需要把新库上的某个用户直接映射到老库...
建立同义词,为了使有关分布式操作更透明,ORACLE数据库里有同义词的对象
第十二章:查看数据库、用户字典的SQL 第一章:日志管理 2 ...第六章: 视图/同义词/dblink/编码方式 6 第七章:LOAD数据 7 第八章:用户管理 8 第九章:权限管理 9 第十章: 角色管理 10 第十一章: 备份与恢复 11
第二次是dataguard搭建之前会让在pdbprod1中创建同义词,pdbprod1 的system文件被删除,三步曲可修复 每场考试还有10分钟时老师会提醒,我们可以使用题目最后的命令来测试此场考试操作的库的连通性,测完连通性最好...
提供对常用数据字典(如 表、视图、索引、同义词、约束、过程、触发器等)的常用操作。例如,输入 “%NAME” 或 “NAME%” 或 “%NAME%”,能查找包含子串 “NAME” 的所有对象名,通过弹出菜单可以对每一个对象...
oracle笔记。 一:oracle的卸载 二:oracle的安装 三:oracle控制台 四:连到其它服务器 ... 3 dblink,同义词 4 触发器 5 定时器 6 视图 7 序列 9 函数 10 存储过程 六:导出,及导入 七: 查询
提供对常用数据字典(如 表、视图、索引、同义词、约束、过程、触发器等)的常用操作。例如,输入 “ %NAME” 或 “NAME%” 或 “%NAME%”,能查找包含子串 “NAME” 的所有对象名,通过弹出菜单可以对每一个 对象...
提供对常用数据字典(如 表、视图、索引、同义词、约束、过程、触发器等)的常用 操作。例如,输入 “%NAME” 或 “NAME%” 或 “%NAME%”,能查找包含子串 “NAME” 的所有对 象名,通过弹出菜单可以对每一个对象...
一、表空间的操作 二、用户、角色、权限 三、表操作 ...七、同义词操作八、dblink操作 九、Sequences操作 十、数据库必须掌握的技巧 十一、oracle锁管理 十二数据库备份和迁移 十三oracle性能调优问题
create public synonym 同义词名 for 表名; 16、填加注释 comment on table 表名 is \'注释\'; comment on column 表名.列名 is \'注释\'; 17、分布式数据库,创建数据库链路 create [public] database link ...