GaussDB数据库中的同义词SYNONYM

目录

一、前言

二、GasussDB数据库中的Synonym

1、Synonym的概念

2、语法介绍

3、Synonym的用途

三、Synonym在GaussDB数据库中是如何使用的

1、表的同义词使用(示例)

2、视图的同义词使用(示例)

3、函数的同义词使用(示例)

4、存储过程的同义词使用(示例)

5、在GaussDB数据库中使用同义词时的注意事项

四、小结

一、前言

在GasussDB数据库中,Synonym是一种灵活且强大的工具,用于简化数据库对象的访问和管理。通过Synonym,用户可以创建具有特定名称的别名,以替代复杂的数据库对象名称,从而提高查询效率、方便维护、增强安全性,并扩展数据库的使用范围。

二、GasussDB数据库中的Synonym

1、Synonym的概念

同义词(Synonym)是数据库中的一个对象,它是一个别名,经常用于简化对象访问和提高对象访问的安全性。在GaussDB数据库中,管理员可以为大部分对象,如表、视图、序列、存储过程、包等等,定义同义词。

2、语法介绍

1)创建一个同义词对象。同义词是数据库对象的别名,用于记录与其他数据库对象名间的映射关系,用户可以使用同义词访问关联的数据库对象。

ALTER SYNONYM synonym_name OWNER TO new_owner;

参数说明:

  • synonym_name:待修改的同义词名字,可以带模式名。
  • new_owner: 同义词对象的新所有者。

3、Synonym的用途

  • 简化数据库对象的访问:Synonym可以创建并使用别名来简化对数据库对象的访问,无需每次都输入完整的对象名称,从而减少输入量,提高访问效率。
  • 提高数据库对象访问的安全性:Synonym可以授权不同的用户访问特定的数据库对象,从而限制他们对数据库的访问权限,提高系统的安全性。
  • 扩展数据库的使用范围:Synonym可以在不同的数据库用户之间创建映射关系,使得用户可以在不知道其他数据库中的对象名称和结构的情况下,通过Synonym访问其他数据库中的对象,实现跨数据库的交互。
  • 提高查询效率:Synonym可以减少查询的时间和SQL语句的复杂度。用户可以通过Synonym来访问数据库中的对象,从而避免了在查询时需要使用完整的对象名。
  • 方便维护:Synonym可以提高代码的可读性,并且降低了更改数据库对象名称给程序带来的影响。如果需要更改对象的名称,只需修改Synonym即可,而不需要在代码中进行修改。

总之,Synonym在GasussDB数据库中可以提高数据库对象的访问效率和安全性,扩展数据库的使用范围,方便用户对数据库的访问和管理。

三、Synonym在GaussDB数据库中是如何使用的

GaussDB支持通过同义词访问的数据库对象包括表、视图、函数和存储过程。支持的DML语句包括SELECT、INSERT、UPDATE、DELETE、EXPLAIN、CALL。

1、表的同义词使用(示例)

--创建表omm2.test1
CREATE TABLE omm2.test1
(
id int
,name varchar2(10)
);--创建表的同义词t1
CREATE OR REPLACE SYNONYM t1 FOR omm2.test1;--使用同义词t1。
INSERT INTO t1 VALUES (1, 'zhangsan'), (2, 'lisi');
UPDATE t1 SET t1.name = 'ZhangSan' WHERE t1.id = 1;
UPDATE t1 SET t1.name = 'LiSi' WHERE t1.id = 2;
SELECT * FROM t1;

执行过程如下:

2、视图的同义词使用(示例)

--创建视图
CREATE VIEW omm2.v_test1 AS SELECT * FROM omm2.test1;--创建同义词v1
CREATE SYNONYM v1 FOR omm2.v_test1;--使用同义词v1。
SELECT * FROM v1;

执行过程如下:

3、函数的同义词使用(示例)

--创建函数根据姓名(参数)获取信息
CREATE OR REPLACE FUNCTION f_test1 (c_name VARCHAR)
RETURNS VOID PACKAGE
LANGUAGE plpgsql
AS $$
DECLARE s_sql TEXT;
BEGIN    s_sql := 'CREATE OR REPLACE VIEW omm2.v_test2 AS SELECT * FROM omm2.test1 where name=''' || c_name || '''' ;EXECUTE s_sql;
END $$;--创建同义词
CREATE OR REPLACE SYNONYM omm2.f1 FOR f_test1;--调用
CALL omm2.f1('ZhangSan'); --查看执行结果
select * from omm2.v_test2;

执行过程如下:

4、存储过程的同义词使用(示例)

--创建存储过程
CREATE OR REPLACE PROCEDURE p_test1(a integer,b varchar2(10))      
SECURITY INVOKER
AS
BEGININSERT INTO omm2.test1 VALUES(a,b);
END;
/--创建同义词
CREATE OR REPLACE SYNONYM omm2.p1 FOR omm2.p_test1;--使用同义词p1,调用存储过程。
CALL omm2.p1(3,'WangWu');SELECT * FROM omm2.test1;

执行过程如下:

5、在GaussDB数据库中使用同义词时的注意事项

FAQ解决思路:

  • 定义同义词的用户成为其所有者。
  • 若指定模式名称,则同义词在指定模式中创建。否则,在当前模式创建。
  • 使用同义词时,用户需要具有对关联对象的相应权限。
  • 不建议对临时表创建同义词。如果需要创建的话,需要指定同义词的目标临时表的模式名,否则无法正常使用改同义词,并且在当前会话结束前执行DROP SYNONYM命令。
  • 删除原对象后,与之关联同义词不会被级联删除,继续访问该同义词会报错,并提示已失效。
  • 不支持针对包含加密列的密态表及基于密态表的视图、函数、存储过程创建同义词。
  • 只有系统管理员有权限修改SYNONYM对象的属主信息。目前仅支持修改属主,且新属主必须具有SYNONYM对象所在模式的CREATE权限。

四、小结

GaussDB的同义词是一种数据库对象,用于为其他数据库对象提供别名。同义词可以简化SQL查询语句,提高可读性和可维护性。同时,同义词还可以实现数据的逻辑隔离和访问控制,提高数据库的安全性。

在GaussDB中,可以使用CREATE SYNONYM语句创建同义词。同义词的定义与被它所引用的对象具有相同的模式(schema)。如果同义词的模式与被引用对象的模式不同,则需要在同义词名称后面加上模式名称进行限定。

需要注意的是,同义词并不实际存储数据,它只是对其他数据库对象的引用。因此,删除同义词并不会删除被引用的对象。同时,同义词也不能跨数据库或实例使用。

更多信息可参考官方文档:

https://support.huaweicloud.com/centralized-devg-v2-gaussdb/devg_03_0574.html

——结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2661161.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

分布式IO在工业自动化中的应用

传统的自动化产线及物流系统主要是利用PLC来处理数据,并将这些数据保存在PC当中。但是随着互联网技术的迅速发展,越来越多的系统集成商利用分布式IO模块,实现从控制器到自动化最底层之间的IO通信。 分布式IO在工业自动化中的应用 分布式IO是用…

Vue3+ElementPlus: 给点击按钮添加触发提示

一、需求 在Vue3项目中,有一个下载按钮,当鼠标悬浮在按钮上面时,会出现文字提示用户可以点击按钮进行数据的下载技术栈 Vue3 ElementPlusTooltip组件 ElementPlus中的Tooltip组件 ,可用于展示鼠标 hover 时的提示信息 二、实现…

【SD】IP-Adapter 进阶 - 垫图 【1】

目录 关于SD1.5的画风迁移 修改动作-方法一:提示词 修改动作-方法二:openpose 关于SD1.5的画风迁移 1.5测试模型:flat2DAnimerge_v30_2.safetensors [b2c93e7a89] 测试图: 文生图:best quality,masterpiece, co…

GPT-5、开源、更强的ChatGPT!

年终岁尾,正值圣诞节热闹气氛的OpenAI写下了2024年的发展清单。 OpenAI联合创始人兼首席执行官Sam Altman在社交平台公布,AGI(稍晚一些)、GPT-5、更好的语音模型、更高的费率限制; 更好的GPTs;更好的推理…

weblogic未授权命令执行漏洞(CVE-2020-14882)

漏洞描述: 未经身份验证的远程攻击者可能通过构造特殊的 HTTP GET请求,利用该漏洞在受影响的 weblogic Server 上执行任意代码。 复现过程: 1.访问ip:port/console 2.poc构造 #!/usr/bin/env python3 # -*- coding: utf-8 -*-…

春款来啦~我先冲了

这款假两件设计的连帽风衣外套 宽松版型对身材包容性很强,韩系慵懒风颜色很舒服 时尚百搭怎么穿都好看系列 做了腰部可调节抽绳,想要修身一点的可以自己调节哈 袖口处也做了金属按扣调节,防风保暖 这件风衣也很好搭配,很经典…

css原子化的框架Tailwindcss的使用教程(原始html和vue项目的安装与配置)

安装教程 中文官网教程 原始的HTML里面使用 新建文件夹npm init -y 初始化项目 安装相关依赖 npm install -D tailwindcss postcss-cli autoprefixer初始化两个文件 npx tailwindcss init -p根目录下新建src/style.css tailwind base; tailwind components; tailwind ut…

利用Jmeter做接口测试(功能测试)全流程分析!

利用Jmeter做接口测试怎么做呢?过程真的是超级简单。 明白了原理以后,把零碎的知识点填充进去就可以了。所以在学习的过程中,不管学什么,我一直都强调的是要循序渐进,和明白原理和逻辑。这篇文章就来介绍一下如何利用…

【数据结构】图论与并查集

一、并查集 1.原理 简单的讲并查集,就是查询两个个元素,是否在一个集合当中,这里的集合用树的形式进行表示。并查集的本质就是森林, 即多棵树。 我们再来简单的举个例子: 假设此时的你是大一新生,刚进入大学,肯定是…

什么是骨传导耳机?骨传导能保护听力吗?

骨传导耳机是一种非常特殊的蓝牙耳机,它通过骨传导技术将声音直接传送到内耳。这种技术不同于传统耳机,它不通过空气传送声音,而是通过头骨的振动来传送声音。 并且骨传导耳机能够在一定程度上起到保护听力的作用,主要是因为它们不…

Oracle中null值和空字符串的坑

思考 今天在学习oracle数据库的过程中,发现当对字段进行约束,默认空字符串时,出现报错 --创建employees表 CREATE TABLE employees (id NUMBER,name VARCHAR2(100) ); --对表新增email列,添加约束默认空字符串并且非空 ALTER …

山景32位蓝牙DSP音频应用处理芯片—BP1048B2

由工采网代理的BP1048B2是山景推出的一款高性能32位DSP蓝牙音频应用处理器;该芯片拥有32位RISC内核,支持DSP指令,集成FPU支持浮点运算,可应用于蓝牙K歌宝、蓝牙便携式音箱、蓝牙拖箱、蓝牙SoundBar、包头式蓝牙耳机、各类蓝牙音频…

阿里云PolarDB数据库费用价格表

阿里云数据库PolarDB租用价格表,云数据库PolarDB MySQL版2核4GB(通用)、2个节点、60 GB存储空间55元5天,云数据库 PolarDB 分布式版标准版2核16G(通用)57.6元3天,阿里云百科aliyunbaike.com分享…

uniapp中uview组件库的Search 搜索 的用法

目录 基本使用 #设置输入框形状 #是否开启清除控件 #是否开启右边控件 #自定义样式 API #Props #Events 基本使用 通过placeholder参数设置占位内容通过v-model双向绑定一个变量值,设置初始化时搜索框的值,如果初始内容为空,那么请绑…

苹果手机微信内存不足怎么清理?分享简单的解决方法!

我们平时经常使用手机来进行各种各样的活动,尤其是微信,它已经成为了我们生活中不可或缺的一部分。然而,随着时间的推移,微信占用的手机内存会越来越大,从而导致手机出现卡顿、闪退等问题。 当出现微信存储空间不足的…

爬虫详细教程第1天

爬虫详细教程第一天 1.爬虫概述1.1什么是爬虫?1.2爬虫工具——Python1.3爬虫合法吗?1.4爬虫的矛与盾1.4.1反爬机制1.4.2反爬策略1.4.3robots.txt协议 2.爬虫使用的软件2.1使用的开发工具: 3.第一个爬虫4.web请求4.1讲解一下web请求的全部过程4.2页面渲染…

[HUBUCTF 2022 新生赛]checkin

[HUBUCTF 2022 新生赛]checkin wp 进入页面&#xff0c;代码如下&#xff1a; <?php show_source(__FILE__); $username "this_is_secret"; $password "this_is_not_known_to_you"; include("flag.php");//here I changed those two…

C++系列-附录-windows下安装C++环境

C系列-附录-windows下安装C环境 在线练习&#xff1a; http://noi.openjudge.cn/ https://www.luogu.com.cn/ 参考 Windows搭建C编程环境(VSCodeMingw-w64) C编译器有哪些 MSYS2 介绍、下载与安装、Pacman常用命令 C编译器简介 常见的C编译器 C编译器是将C源代码翻译成可执…

如何解决mac无法访问github

确定github能访问的ip地址 点击检测按钮&#xff0c;找到比较快的ip 修改hosts文件&#xff1a;打开终端&#xff0c;输入 open /etc/hosts 后回车&#xff0c;打开mac的文本编辑器 add github.com 140.82.121.4 github.com 199.232.69.194 github.global.ssl.fastly.net …

深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第三节 栈与堆,值类型与引用类型

深入浅出图解C#堆与栈 C# Heaping VS Stacking 第三节 栈与堆&#xff0c;值类型与引用类型 [深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第一节 理解堆与栈](https://mp.csdn.net/mdeditor/101021023)[深入浅出图解C#堆与栈 C# Heap(ing) VS Stack(ing) 第二节 栈基本工…