oracle批量建同义词,Oracle批量创建同义词
一、介绍
Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系。它可以节省大量的数据库空间,对不同用户的操作同一张表没有多少差别;它扩展了数据库的使用范围,能够在不同的数据库用户之间实现无缝交互。
很多时候,会有多个oracle账号访问一个账号下的表,比如:USER_A用户下面有很多表,相关的sql语句都是USER_A.Tablename等等等,这时候需要用USER_B用户去访问USER_A的表,但是sql语句还要保持USER_A.Tablename,就需要用到同义词了
同义词分类:
Oracle同义词有两种类型,分别是Oracle公用同义词与Oracle私有同义词。普通用户创建的同义词一般都是私有同义词,公有同义词一般由DBA创建,普通用户如果希望创建同义词,则需要CREATE PUBLIC SYNONYM这个系统权限。
Oracle公用同义词:由一个特殊的用户组Public所拥有。顾名思义,数据库中所有的用户都可以使用公用同义词。公用同义词往往用来标示一些比较普通的数据库对象,这些对象往往大家都需要引用。
Oracle私有同义词:它是跟公用同义词所对应,他是由创建他的用户所有。当然,这个同义词的创建者,可以通过授权控制其他用户是否有权使用属于自己的私有同义词。
二、创建同义词
语法:
CREATE [OR REPLACE] [PUBLIC] SYNONYM [ schema.] 同义词名称 FOR [ schema.] object [ @dblink ];
专有(私有)同义词
CREATE SYNONYM SYSN_TEST FOR TEST;
公共同义词
CREATE PUBLIC SYNONYM PUBLIC_TEST FOR TEST;
2.1首先需要sys用户授权USER_B创建同义词权限
其中USER_B是需要创建同义词的用户
GRANT CREATE SYNONYM TO USER_B;
这个时候还需要一个权限就是USER_B用户select USER_A用户table的权限,这个时候是在USER_A用户下赋值的
grant select on tableA to user_temp;
2.2创建同义词
create synonym USER_B.Tablename for USER_A.Tablename;
2.3测试同义词
使用USER_B用户oracle,有输出结果代表可以在USER_B用户下以USER_B的schema查看USER_A的表
select count(*) from USER_B.Tablename;
三、批量创建同义词
很多时候,当前环境下的表有几百张甚至几千张,很多人说可以select * from dba_tables where owner=‘UPCENTER‘ 把表名查出来,用notpad拼成命令,批量执行,这里是行不通的,因为每条命令的行尾都不一样(表名不同)
这时候可以先用notpad软件把USER_B用户select USER_A用户table的权限批量执行,然后再执行下面的命令,把输出结果执行以下即可:
select 'create synonym USER_B.'||table_name||' for upcenter.'||table_name||';' from dba_tables where owner='USER_A'
四、查看同义词和删除同义词
4.1查看用户下的同义词
SELECT * FROM DBA_SYNONYMS where OWNER = 'UPAPP';
4.2删除同义词
DROP SYNONYM SYSN_NAME;
原文:https://www.cnblogs.com/williamzheng/p/11733594.html
oracle批量建同义词,Oracle批量创建同义词相关推荐
- oracle 授权同义词权限不足,创建同义词ora-01031权限不足
我需要帮助了解用户需要何种授权/权限才能在指向另一个(不同的)模式对象时创建SYNONYM.创建同义词ora-01031权限不足 当我尝试下面的内容时,我得到的ora-01031权限不够,所以显然我失 ...
- oracle mysql 同义词_Oracle数据库创建同义词(synonym)详细讲解
1.1数据库创建同义词(synonym) Oracle的同义词(synonyms)从字面上理解就是别名的意思,和视图的功能类似,就是一种映射关系.它可以节省大量的数据库空间,对不同用户的操作同一张表没 ...
- oracle如何建pdb,Oracle 12c 命令行创建PDB
1.登陆cdb创建pdb sqlplus / as sysdba create pluggable database pdb4 admin user pdb4 identified by pdb4 f ...
- oracle sqlplus建用户,Oracle用SQL Plus创建数据库表空间和用户
1. 在电脑左下角点击"开始",然后输入"sql plus",选择运行sql plus程序(登录身份:指登录时的Role指定,oracle11g中分SYSDBA ...
- oracle如何建pdb,教你创建PDB的三种方法
12C官方文档提到6种创建PDB的技术,如下:Create a PDB by using the seed Create a PDB by cloning an existing PDB or non ...
- oracle存储过程建分区表,oracle存储过程创建表分区实例
用存储过程创建数据表: 创建时注意必须添加authid current_user,如果创建的表已存在,存储过程继续执行,但如不不加此关键语句,存储过程将出现异常, 这个语句相当于赋权限. 例1 创建语 ...
- Oracle数据库建表 Oracle数据库的统一命名与编码规范
本文转载自:http://chinaxxren.iteye.com/blog/889590 如有疑问请咨询原博主,谢谢!! 写在前边: 规范是一种习惯,在Oracle数据库中笔者认为表中的字段命名规范 ...
- oracle怎样建表,oracle怎样建表?_数据库
oracle建表的要领:1.必需以字母开头:2.不必SQL里的保留字, 肯定要用时可用双引号把字符串括起来:3.用和实体或属性相干的英文标记长度有肯定的限定. oracle建表的要领: 1.建立表格语 ...
- oracle表关联词语,Oracle的同义词(synonyms)详解
Oracle的同义词(synonyms)详解 从字面上理解就是别名的意思,和视图的功能类似.就是一种映射关系. 同义词语法:CREATE [PUBLIC] SYNONYM synonym FOR ob ...
- oracle 建库,Oracle手工建库步骤
Oracle手工建库步骤,创建数据库所需的目录,包括数据文件存放目录,日志存放目录,归档存放目录等,开始执行create database 命 Oracle手工建库步骤: 1.创建数据库所需的目录,包 ...
最新文章
- 没有安装python如何使用anaconda运行python命令行
- Exchange系列—管理邮件队列
- Select()系统调用及文件描述符集fd_set的应用
- selenium python (八)定位frame中的对象
- unity 给图片边缘_Unity Shader 屏幕后效果——边缘检测
- 修改telnet提示并非_iPhone修改微信提示音,iOS12可用,无需越狱详细教程
- python和java的区别-一张图秒懂Java和Python的区别,你知道吗?
- python中的字符数字之间的转换函数
- elasticsearch 请求全部数据
- CNBlog客户端--第一阶段记录
- html 数据库 留言板,使用html5本地数据库留言本代码分享
- 获取三角形外接圆的圆心坐标、半径
- 面向开发人员的 27种Vuejs开发工具
- 【浏览器】谷歌浏览器自带翻译失效
- AutoCAD块属性提取
- 幽暗镰刀:隐私安全下的收割者们
- svg学习之svg动画
- 计算机主机突然断电有什么影响吗,断电对电脑的伤害大吗?有什么损伤?
- 我只好去找了一根绳子系着它的脖子
- PHOTOSHOP基本概念解释【转】