Oracle数据库 Synonym和DBLink
1.1数据库创建同义词(synonym)
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互;Oracle数据库中提供了同义词管理的功能。同义词是数据库对象的一个别名,经常用于简化对象访问和提高对象访问的安全性。在使用同义词时,Oracle数据库将它翻译成对应方案对象的名字。与视图类似,同义词并不占用实际存储空间,只有在数据字典中保存了同义词的定义。在Oracle数据库中的大部分数据库对象,如表、视图、物化视图、序列、函数、存储过程、包、同义词等等,数据库管理员都可以根据实际情况为他们定义同义词。创建同义词,访问不同用户下的表,不用加用户名。(意思就是取了一个公用的别名)
1.1.1在同一数据库下创建同义词(synonym)
第一步:创建新用户,以及访问不同用户下的表,必须授予以下权限
(1) create user test_1/test_2 identified by 123;
(2) grant resource,connect to test_1;
(3) grant select any table to test_1;
第二步:授予创建同义词(synonym)的权限
grant create any synonym to test_1;
第三步:创建同义词,并进行访问
(1) create synonym teacher for test_2.teacher;
(2) select * from teacher;(在用户test_1中进行查询)
1.1.2在不同数据库下创建同义词(synonym)
第一步:建立DBLink
create public database link test_others_course
connect to test_others identified by "456"
using'(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.106)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)';
第二步:建立同义词
create synonym course for course@test_others_course;
第三步:进行操作(在用户test_1中进行操作)
select * from course;
update course set cname='计算机导论' where tno='825';
2.1数据库创建数据库连接(DBLink)
dblink(Database Link)数据库链接顾名思义就是数据库的链接,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就必须要创建远程数据库的dblink,通过dblink本地数据库可以像访问本地数据库一样访问远程数据库表中的数据。
第一步:查询用户是否具备创建DBLink的权限,并赋予权限
(1) select * from user_sys_privs where privilege like upper('%DATABASE LINK%');
(2) grant create public database link,drop public database link to test_1;
第二步:创建DBLink
已经配置本地服务:
create public database link test_others_course
connect to test_others identified by "456"
using'ORCL';
直接建立连接:
create public database link test_others_course
connect to test_others identified by "456"
using'(DESCRIPTION =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.0.106)(PORT = 1521))
(CONNECT_DATA =
(SERVER = DEDICATED)
(SERVICE_NAME = ORCL)
)
)';
第三步:查询DLink,删除DBLink
查询DLink(在dba下执行):select * from dba_db_links;
select owner,object_name from dba_objects where object_type='DATABASE LINK';
删除DBLink:drop public database link test_others_course;
第四步:执行DBLink
select * from course@test_others_course;
3.1 赋予/移除用户增、删、改、查其他用户所属表权限
3.1.1所有表
(1)grant/revoke update any table to test_1;
(2)grant/revoke insert any table to test_1;
(3)grant/revoke delete any table to test_1;
(4)grant/revoke select any table to test_1;
3.1.2单独表
(1)grant/revoke select on test_2.teacher to test_1;
(2)grant/revoke delete on test_2.teacher to test_1;
(3)grant/revoke insert on test_2.teacher to test_1;
(4)grant/revoke update on test_2.teacher to test_1;
3.1.3查询用户拥有权限
select * from dba_sys_privs where grantee='TEST_1';(用户名要大写)
3.1.3查询用户拥有角色
select * from dba_role_privs where grantee='TEST_1';(用户名要大写)
Oracle数据库 Synonym和DBLink的更多相关文章
- 在oracle数据库中创建DBLink
涉及到两个数据库之间的访问时,可以创建datebase link来互相访问. ’创建方法: 1.通过PL/SQL客户端,找到datebase link,右键新建 输入相应信息 2.直接用命令行创建 一 ...
- 【代码备份】ORACLE数据库表同步DBLINK
---创建目标数据库连接DBLINKcreate database link testdblink connect to xxx identified by "xxx"using ...
- SQLSERVER 创建对Oracle数据库的DBlink以及查询使用
1. 与针对oracle数据库一样, 在sqlserver中创建对oracle数据库的dblink 安全性上面也进行定义(貌似不需要跟访问字符串只需要填一个即可) 发现有的版本改注册表不管用 还得修改 ...
- Oracle数据库通过DBLINK实现远程访问
什么是DBLINK? dblink(Database Link)数据库链接顾名思义就是数据库的链接 ,就像电话线一样,是一个通道,当我们要跨本地数据库,访问另外一个数据库表中的数据时,本地数据库中就 ...
- Oracle数据库如何创建DATABASE LINK?
Oracle数据库如何创建DATABASE LINK? 2011-08-09 14:54 taowei20061122 CSDN博客 http://blog.csdn.net/taowei20061 ...
- Oracle数据库设计规范建议
Oracle数据库设计规范建议 1 目的 本规范的主要目的是希望规范数据库设计,尽量提前避免由于数据库设计不当而产生的麻烦:同时好的规范,在执行的时候可以培养出好的习惯,好的习惯是软件质量的很好的保证 ...
- asp.net中membership使用oracle数据库(一)
第一步 数据库的准备 使用 oracle 11g的数据库 需要安装好,安装过程中先决条件检查失败的处理:确认server服务已运行 cmd->net share c$=c: 就可以通过 orac ...
- 【转】oracle数据库开发的一些经验积累
1.不安装Oracle客户连接Oracle 8的方法 请将以下文件拷贝到运行文件所在目录 一.ODBC动态库 : ctl3d32.dll msvcrt40.dll odbc16gt.dll odbc ...
- Oracle 数据库对象
数据库对象是数据库的组成部分,常常用CREATE命令进行创建,可以使用ALTER命令修改,用DROP执行删除操作.前面已经接触过的数据库对象有表.用户等. 今天将学习更多的Oracle数据库对象: 同 ...
随机推荐
- CentOS7安装GUI图形界面
本文转自centOS7下安装GUI图形界面,侵权删. 1. 在命令行下 输入下面的命令来安装Gnome包. # yum groupinstall "GNOME Desktop" & ...
- jquery延迟加载(懒加载)插件
Lazy Load 是一个用 JavaScript 编写的 jQuery 插件. 它可以延迟加载长页面中的图片. 在浏览器可视区域外的图片不会被载入, 直到用户将页面滚动到它们所在的位置. 这与图片预 ...
- Linux下“/”和“~”的区别
在linux中,”/“代表根目录,”~“是代表目录.Linux存储是以挂载的方式,相当于是树状的,源头就是”/“,也就是根目录. 而每个用户都有”家“目录,也就是用户的个人目录,比如root用户的”家 ...
- Vue小项目二手书商城:(四)详情页和购物车(emit、prop、computed)
实现效果: 点击对应商品,对应的商品详情页出现,详情页里面还有“Add to cart”按钮和“×”退出按钮. 点击“Add to cart”可以将商品加入购物车,每件商品只能添加一次,如果把购物车的 ...
- 数据结构|-用C#实现一个简单的链表
我们知道C#中是没有链表的,我们可以自己实现一个 整个单链表能实现的功能有: 功能 方法 返回值 备注 获取链表长度 GetLength() int 返回值是链表长度 清空链表 Clear() voi ...
- SQL 函数 coalesce()、row_number()的用法
coalesce()函数 ①用途: 将空值替换成其他值 返回第一个非空值 ②表达式: COALESCE是一个函数, (expression_1, expression_2, ...,expressio ...
- C#_计算目前时间到指定的周X、指定的时间X 还有多少秒
比如:当前时间到下周二 05:00:00还剩下多少秒? /// <summary> /// 计算距离下一个 周XX XX时XX分XX秒,还剩下多少秒 /// </summary> ...
- Ctrl+Alt+Down/Up 按键冲突
I mapped Ctrl-Alt-Up/Down to open web-browser and email client but it didn't take effect. Ctrl-Alt-U ...
- .class 缓存
项目用的是Ant. 场景: Class A{ private static final String HHH="hello"; } Class B{ public void met ...
- 使用js实现放大镜效果
点击预览放大镜效果,图片比较大,因为需要精细的图片去凸显放大的效果,请耐心 可以通过滑轮控制放大倍数,由于图片太大 如果放大镜没有出现 可刷新一下网页