广告
返回顶部
首页 > 资讯 > 后端开发 > 其他教程 >openGauss的SCHEMA的原理及管理介绍
  • 621
分享到

openGauss的SCHEMA的原理及管理介绍

openGauss SCHEMA管理openGauss SCHEMA原理 2023-02-13 18:02:39 621人浏览 独家记忆
摘要

目录? 1.何为Schema摘要:? 2.Schema语法✨ 2.1 创建SCHEMA✨ 2.2 修改SCHEMA✨ 2.3 删除SCHEMA? 3.Schema赋权? 1.何为Sc

? 1.何为Schema摘要:

本篇介绍了openGauss的SCHEMA的原理及管理。

Schema又称作模式。通过管理Schema,允许多个用户使用同一数据库而不相互干扰,可以将数据库对象组织成易于管理的逻辑组,同时便于将第三方应用添加到相应的Schema下而不引起冲突。

??? 数据库(database)、用户(user)、schema、和表的关系如下图所示:

每个数据库包含一个或多个Schema。数据库中的每个Schema包含表和其他类型的对象。数据库创建初始,默认具有一个名为public的Schema,且所有用户都拥有此Schema的usage权限,只有系统管理员和初始化用户可以在public Schema下创建函数、存储过程和同义词对象,其他用户即使赋予create权限后也不可以创建上述三种对象。可以通过Schema分组数据库对象。Schema类似于操作系统目录,但Schema不能嵌套。

???注意要点

相同的数据库对象名称可以应用在同一数据库的不同Schema中 CREATE USER创建用户的同时,系统会在执行该命令的数据库中,为该用户创建一个同名的SCHEMA 可以把schema理解成操作系统的目录(文件夹),所不同的是schema只有一层,不能嵌套创建

? 2.Schema语法

✨ 2.1 创建SCHEMA

语法:CREATE SCHEMA schema_name [ AUTHORIZATioN user_name ] ;

案例1:创建一个名为tpcds的模式

openGauss=#  create schema tpcds;
openGauss=# \dn+ tpcds
                         List of schemas
 Name  | Owner | Access privileges | Description | WithBlockChain 
-------+-------+-------------------+-------------+----------------
 tpcds | omm   |                   |             | f

✨ 2.2 修改SCHEMA

修改模式的名称语法:ALTER SCHEMA schema_name RENAME TO new_name; 修改模式的所有者语法:ALTER SCHEMA schema_name OWNER TO new_owner;

案例1:重命名tpcds为tpcds1

openGauss=# ALTER SCHEMA tpcds RENAME TO tpcds1;
ALTER SCHEMA
openGauss=# \dn+ tpcds1    
                          List of schemas
  Name  | Owner | Access privileges | Description | WithBlockChain 
--------+-------+-------------------+-------------+----------------
 tpcds1 | omm   |                   |             | f

案例2:创建一个用户jeames, 并将tpcds1的owner修改为jeames

openGauss=# CREATE USER jeames PASSWord 'abcd@123';
CREATE ROLE
openGauss=# \dn
     List of schemas
      Name       | Owner  
-----------------+--------
 blockchain      | omm
 cstore          | omm
 db4ai           | omm
 dbe_perf        | omm
 dbe_pldebugger  | omm
 dbe_pldeveloper | omm
 jeames          | jeames
 mesdb           | mesdb
 pkg_service     | omm
 public          | omm
 snapshot        | omm
 sqladvisor      | omm
 tpcds1          | omm
(13 rows)
openGauss=# ALTER SCHEMA tpcds1 OWNER TO jeames;
ALTER SCHEMA
openGauss=# \dn+ tpcds1
                          List of schemas
  Name  | Owner  | Access privileges | Description | WithBlockChain 
--------+--------+-------------------+-------------+----------------
 tpcds1 | jeames |                   |             | f

案例3:在模式tpcds1中建表customer、插入记录和查询记录 

openGauss=# create table tpcds1.customer(id int, name char(30));
CREATE TABLE
openGauss=# insert into tpcds1.customer values(1 ,'xxxx');
INSERT 0 1
openGauss=# select * from tpcds1.customer;
 id |              name              
----+--------------------------------
  1 | xxxx                          

✨ 2.3 删除SCHEMA

语法:DROP SCHEMA schema_name; 注:不要随意删除pg_temp或pg_toast_temp开头的模式,这些模式是系统内部使用的

DROP SCHEMA tpcds1 CASCADE;

??? 补充

要查看属于某Schema下的表列表,请查询系统视图PG_TABLES: openGauss=# SELECT distinct(tablename),schemaname from pg_tables where schemaname = 'pg_catalog';

? 3.Schema赋权

普通schema的create权限grant给其他用户后,其他用户即可以创建对象。

分别创建schema teacher_zhao2、teacher_zhao3(指定AUTHORIZATION),并把create权限赋给teacher_li:
openGauss=# create SCHEMA teacher_zhao2;
CREATE SCHEMA
openGauss=# \dn+ teacher_zhao2
                             List of schemas
     Name      | Owner | Access privileges | Description | WithBlockChain 
---------------+-------+-------------------+-------------+----------------
 teacher_zhao2 | omm   |                   |             | f
openGauss=# CREATE SCHEMA teacher_zhao3 AUTHORIZATION jeames;
CREATE SCHEMA
openGauss=# \dn+ teacher_zhao3
                              List of schemas
     Name      | Owner  | Access privileges | Description | WithBlockChain 
---------------+--------+-------------------+-------------+----------------
 teacher_zhao3 | jeames |                   |             | f
可以发现没有指定AUTHORIZATION的情况下,默认创建用户是clouduser(系统管理员),
而指定情况下,则创建用户就是指定的用户。

下面尝试用jeames登录,创建数据库对象teacher_zhao2.t2:

openGauss=# grant create on SCHEMA teacher_zhao2 to jeames;
openGauss=# grant all on all tables in schema teacher_zhao2 to jeames;
openGauss=# grant select on teacher_zhao2.t2 to jeames;
openGauss=> create table teacher_zhao2.t2(a int);
openGauss=# \c postgres jeames
openGauss=> create table teacher_zhao2.t2(a int);

以上就是openGauss的SCHEMA的原理及管理介绍的详细内容,更多关于openGauss SCHEMA管理的资料请关注编程网其它相关文章!

--结束END--

本文标题: openGauss的SCHEMA的原理及管理介绍

本文链接: https://www.lsjlt.com/news/195876.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • openGauss的SCHEMA的原理及管理介绍
    目录 1.何为Schema摘要: 2.Schema语法✨ 2.1 创建SCHEMA✨ 2.2 修改SCHEMA✨ 2.3 删除SCHEMA 3.Schema赋权 1.何为Schema...
    99+
    2023-02-13
    openGauss SCHEMA管理 openGauss SCHEMA原理
  • openGauss的SCHEMA的原理及管理方法是什么
    这篇文章主要介绍“openGauss的SCHEMA的原理及管理方法是什么”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“openGauss的SCHEMA的原理及管理方法是什么”文章能帮助大家解决问题。...
    99+
    2023-07-05
  • Vue中的Tree-Shaking介绍及原理
    目录什么是Tree-ShakingTree-shaking的原理和支持可以被Tree-shaking不可以被Tree-shakingVue中的应用什么是Tree-Shaking Tr...
    99+
    2023-05-18
    Vue中的Tree-Shaking Vue Tree-Shaking
  • xtrabackup介绍及备份原理
    1. Xtrabackup介绍xtrabackup就percona公司基于innodb公司的ibbackup(收费)实现的一个开源软件,完全覆盖了ibbackup的功能,而且完全免费,可谓是业界良心。xtr...
    99+
    2022-10-18
  • React状态管理Redux原理与介绍
    目录一、Redux二、Redux的组成2.1 store2.2 state2.3 action2.4 reducer三、三大原则3.1 单一数据源3.2 State只读3.3 使用纯...
    99+
    2022-11-13
  • ThreadLocal原理介绍及应用场景
    本次给大家介绍重要的工具ThreadLocal。讲解内容如下,同时介绍什么场景下发生内存泄漏,如何复现内存泄漏,如何正确使用它来避免内存泄漏。 ThreadLocal是什么...
    99+
    2022-11-12
  • MySql事务原理介绍及特性
    目录1. 什么是事务2. 事务是如何做到同时成功失败3. 如何提交回滚事务1. mysql 中默认的事务行为是怎样的2. 回滚事务3. 提交事务4. 事务的4个特性5. 事务的隔离性1. 什么是事务 一个事务就是一个完整...
    99+
    2022-09-16
  • Pinia介绍及工作原理解析
    目录什么是Pinia如何使用Pinia安装创建store在组件中使用store在模板中使用storePinia是如何工作的什么是Pinia Pinia是Vue 3的状态管理库,它提...
    99+
    2023-03-06
    Pinia工作原理 Pinia原理
  • MYsql库与表的管理及视图介绍
    目录库的管理1、库的管理2、表的管理3、表的修改表操作的练习题视图视图的作用应用场景创建视图的语法库的管理 1、库的管理 创建、修改、删除 1、库的创建 CREATE DATABASE UF NOT EXISTS boo...
    99+
    2022-09-01
  • Java NIO的的介绍及工作原理是什么
    这篇文章主要讲解了“Java NIO的的介绍及工作原理是什么”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“Java NIO的的介绍及工作原理是什么”吧!针对传统I/O 工作模式的不足,NIO...
    99+
    2023-06-17
  • Spring的工作原理介绍
    本篇内容主要讲解“Spring的工作原理介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Spring的工作原理介绍”吧!spring原理内部最核心的就是IOC了,动态注入,让一个对象的创建不用...
    99+
    2023-05-30
    spring
  • chatgpt的算法原理介绍
    chatgpt的算法原理是基于GPT-3,先通过人工标注方式训练出强化学习的冷启动模型与reward反馈模型,最后通过强化学习的方式...
    99+
    2023-02-09
    chatgpt
  • mysql复制的原理介绍
    这篇文章主要讲解了“mysql复制的原理介绍”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“mysql复制的原理介绍”吧! 图中m...
    99+
    2022-10-18
  • GoldenGate的基本原理介绍
    本篇内容介绍了“GoldenGate的基本原理介绍”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!什么是Go...
    99+
    2022-10-18
  • 文件包含漏洞(原理及介绍)
    文件包含漏洞(原理及介绍) File inclusion,文件包含(漏洞)。程序开发人员通常出于灵活性的考虑,会将被包含的文件设置成变量,然后动态调用这些文件。但正是因为调用的灵活性导致用户可能调用一...
    99+
    2023-09-05
    php 安全 web安全
  • AJAX工作原理及优缺点介绍
    本篇内容主要讲解“AJAX工作原理及优缺点介绍”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“AJAX工作原理及优缺点介绍”吧!一、ajax所包含的技术大家都知道...
    99+
    2022-10-19
  • 涉及MySQL用户及权限管理的简单介绍
    本文主要给大家介绍MySQL用户及权限管理,文章内容都是笔者用心摘选和编辑的,具有一定的针对性,对大家的参考意义还是比较大的,下面跟笔者一起了解下MySQL用户及权限管理吧。 MySQL用户及权限...
    99+
    2022-10-18
  • oracle管理工具的介绍
    oracle管理工具的介绍(1)===================================================================sql*plus是oracle自带的工具...
    99+
    2022-10-18
  • TIDB简介及TIDB部署、原理和使用介绍
    TiDB简介及TiDB部署、原理和使用介绍 从MySQL架构到TiDB 数据库分类 ​ 介绍TiDB数据库之前,先引入使用场景。如今的数据库种类繁多,RDBMS(关系型数据库)、NoSQL(Not Only SQL)、NewSQL,在数据库...
    99+
    2023-08-17
    tidb 数据库 mysql 大数据 etl工程师
  • 详细介绍Golang编译的过程及其原理
    Golang是一种新的编程语言,十分快速的发展,得到越来越多开发者的关注和使用。Golang除了拥有诸如并发编程、垃圾回收、强类型等自身特性外,还具有编译速度快、能生成单独静态链接的可执行文件等优势。但是,Golang的编译过程却不简单。在...
    99+
    2023-05-14
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作