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 数据库中有两个重要的概念:同义词(Synonym)和数据库连接(DBLink)。这两个概念都是为了方便数据库的使用和管理而设计的。 同义词(Synonym) 同义词是 Oracle 数据库中的一种对象别名,它可以节省大量...
在深入探讨“dblink+同义词”的主题之前,我们首先需要理解dblink与同义词在数据库领域中的基本概念及其重要性。 ### dblink(数据库链接) dblink,即数据库链接,是一种允许在一个数据库中执行对另一个远程...
为了方便使用,可以创建同义词或远程视图: ```sql CREATE SYNONYM worker_syn FOR worker@zrhs_link; CREATE VIEW worker AS SELECT * FROM worker@zrhs_link WHERE …; ``` 总之,Oracle DATABASE LINK 是一种...
#### 一、Oracle DBLink概念与创建步骤 DBLink(Database Link)是Oracle提供的一种机制,用于在不同的Oracle数据库实例之间建立连接,实现跨数据库查询、更新等功能。它使得在一个数据库中访问另一个数据库的数据...
在Oracle数据库系统中,同义...总之,Oracle同义词是数据库管理和维护中不可或缺的一部分,它为用户提供了一种方便且安全的方式来引用和操作数据库中的各种对象。正确使用同义词,可以提升数据库的可维护性和用户体验。
- 同义词是数据库对象的别名,可以用于简化 dblink 的使用。创建同义词有两种方式,一种是针对本地数据库对象,另一种是针对远程数据库对象。 ```sql CREATE SYNONYM 同义词名 FOR 表名; CREATE SYNONYM 同义词...
Oracle DBLink(数据库链接)是Oracle数据库提供的一种特性,它允许用户在不同的Oracle数据库实例间进行数据查询和操作,仿佛这些数据库都在同一个实例内。DBLink使得分布式数据库系统的交互变得简单,无需复杂的...
使用 DB Link 可以查询、删除和插入远程数据库中的数据,方法与操作本地数据库相同,只需要在表名后添加 @dblink 服务器。 DB Link 的优点 使用 DB Link 可以实现不同的数据库服务器之间的数据共享和交换,提高了...
本文将详细介绍如何通过dbLink与Job相结合的方式实现这一目标。 #### 一、dbLink简介 dbLink(Database Link)是Oracle提供的一种机制,用于连接两个不同的Oracle数据库实例。它为跨数据库查询提供了便利,可以...
全局数据库名是数据库的唯一标识,当`GLOBAL_NAME`参数设置为`TRUE`时,本地创建的DBLink名字必须与远程数据库的全局数据库名一致。 2. **检查`GLOBAL_NAME`参数**: `SHOW PARAMETER global_name;`命令用于查看该...
- **创建同义词**:这是一种更简便的查询方式,可以提高效率。示例如下: ```sql CREATE SYNONYM scuser FOR OraTest..EAPP.LDUSER; SELECT * FROM scuser; ``` #### 三、常见问题及解决方法 1. **权限问题**...
前几天编写一个存储过程,需要访问远程数据库的字段,于是建立一个dbLink并建了同义词: CREATE PUBLIC DATABASE LINK orcl@dbc CONNECT TO orcl IDENTIFIED BY orcl USING 'orcl'; CREATE SYNONYM mtb FOR mytable...
公有dblink对所有人开放,在该dblink之上创建的同义词也会随之对所有人开放。私有dblink只有创建者可以访问,其上的同义词不能被其他用户访问。 二、 创建dblink 创建dblink需要使用CREATE DATABASE LINK语句,...
本文介绍的是关于Oracle同义词+dblink的实际应用,下面话不多说了,来一起看看详细的介绍吧。 业务需求:原数据库(10.2.0.4.0),新数据库(11.2.0.3) 由于程序的需求原因,现在需要把新库上的某个用户直接映射到老库...
4. **同义词**:可以通过创建同义词简化远程表的引用。 #### 七、删除 DB-link 如果不再需要某个 DB-link,可以使用以下命令删除它: ```sql DROP PUBLIC DATABASE LINK linkfwq; ``` 这里 `linkfwq` 是要删除的 ...
以上就是Oracle日常操作的一些关键知识点,包括定位安装路径、数据泵的使用、RAC集群的配置、DBLink的创建与使用以及同义词的管理。这些技能对于管理和维护Oracle数据库至关重要。在实际工作中,还需要掌握更多高级...