openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA

这篇具有很好参考价值的文章主要介绍了openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA

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

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

相同的数据库对象名称可以应用在同一数据库的不同SCHEMA中,而没有冲突。例如,a_schema和b_schema都可以包含名为mytable的表。具有所需权限的用户可以访问数据库的多个SCHEMA中的对象。

通过CREATE USER创建用户的同时,系统会在执行该命令的数据库中,为该用户创建一个同名的SCHEMA。

34.1 语法格式

  • 创建SCHEMA

    CREATE SCHEMA schema_name 
        [ AUTHORIZATION user_name ] ;
    
  • 修改SCHEMA

    • 修改模式的名称。

      ALTER SCHEMA schema_name 
          RENAME TO new_name;
      
    • 修改模式的所有者。

      ALTER SCHEMA schema_name 
          OWNER TO new_owner;
      
  • 删除SCHEMA及其对象。

    DROP SCHEMA schema_name;
    

    不要随意删除pg_temp或pg_toast_temp开头的模式,这些模式是系统内部使用的,如果删除,可能导致无法预知的结果。

34.2 参数说明

  • schema_name

    模式名称。

    openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA,openGauss学习笔记,openGauss,数据库,开源数据库,云计算,运维须知: 模式名不能和当前数据库里其他的模式重名。 模式的名称不可以“pg_”开头。

    取值范围:字符串,要符合标识符的命名规范。

  • AUTHORIZATION user_name

    指定模式的所有者。当不指定schema_name时,把user_name当作模式名,此时user_name只能是角色名。

    取值范围:已存在的用户名/角色名。

  • schema_element

    在模式里创建对象的SQL语句。目前仅支持CREATE TABLE、CREATE VIEW、CREATE INDEX、CREATE PARTITION、CREATE SEQUENCE、CREATE TRIGGER、GRANT子句。

    子命令所创建的对象都被AUTHORIZATION子句指定的用户所拥有。

openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA,openGauss学习笔记,openGauss,数据库,开源数据库,云计算,运维说明: 如果当前搜索路径上的模式中存在同名对象时,需要明确指定引用对象所在的模式。可以通过命令SHOW SEARCH_PATH来查看当前搜索路径上的模式。

34.3 示例

  • 创建一个属于用户user1的模式。

    创建一个用户user1。

    openGauss=# CREATE USER user1 IDENTIFIED BY 'XXXXXXXX';
    CREATE ROLE
    

    根据用户名创建模式。

    openGauss=# CREATE SCHEMA test AUTHORIZATION user1;
    CREATE SCHEMA
    
  • 修改模式test的名称为test1。

    openGauss=# ALTER SCHEMA test RENAME TO test1;
    ALTER SCHEMA
    
  • 修改模式的所有者。

    创建一个用户user2。

    openGauss=# CREATE USER user2 IDENTIFIED BY 'XXXXXXXXX';
    CREATE ROLE
    

    修改模式 test1的所有者为user2。

    openGauss=# ALTER SCHEMA test1  OWNER TO user2;
    ALTER SCHEMA
    
  • 查看当前搜索路径

    openGauss=# SHOW SEARCH_PATH;
      search_path
    ----------------
     "$user",public
    (1 row)
    
  • 更改当前会话的默认Schema。

    openGauss=# SET SEARCH_PATH TO test1, public;
    SET
    
  • 删除SCHEMA及其对象。

    openGauss=# DROP SCHEMA test1;
    DROP SCHEMA
    

👍 点赞,你的认可是我创作的动力!

⭐️ 收藏,你的青睐是我努力的方向!

✏️ 评论,你的意见是我进步的财富!

openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA,openGauss学习笔记,openGauss,数据库,开源数据库,云计算,运维文章来源地址https://www.toymoban.com/news/detail-643952.html

到了这里,关于openGauss学习笔记-34 openGauss 高级数据管理-SCHEMA的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • openGauss学习笔记-35 openGauss 高级数据管理-ALTER TABLE语句

    修改表,包括修改表的定义、重命名表、重命名表中指定的列、重命名表的约束、设置表的所属模式、添加/更新多个列、打开/关闭行访问控制开关。 35.1 语法格式 在一张已经存在的表上添加列。 在一张已经存在的表上删除列。 修改表的字段类型。 为一张已经存在表的列增

    2024年02月13日
    浏览(49)
  • openGauss学习笔记-09 openGauss 简单数据管理-创建数据库

    数据库安装完成后,默认生成名称为postgres的数据库。您需要自己创建一个新的数据库。 9.1 语法格式 创建数据库 查看数据库 使用“l”用于查看已经存在的数据库。 使用 “c + 数据库名” 进入已存在数据库。 修改数据库 删除数据库 9.2 参数说明 database_name 要创建、修改或

    2024年02月16日
    浏览(58)
  • openGauss学习笔记-74 openGauss 数据库管理-创建和管理视图

    74.1 背景信息 当用户对数据库中的一张或者多张表的某些字段的组合感兴趣,而又不想每次键入这些查询时,用户就可以定义一个视图,以便解决这个问题。 视图与基本表不同,不是物理上实际存在的,是一个虚表。数据库中仅存放视图的定义,而不存放视图对应的数据,这

    2024年02月07日
    浏览(56)
  • openGauss学习笔记-108 openGauss 数据库管理-管理用户及权限-用户

    使用CREATE USER和ALTER USER可以创建和管理数据库用户。openGauss包含一个或多个已命名数据库。用户和角色在整个openGauss范围内是共享的,但是其数据并不共享。即用户可以连接任何数据库,但当连接成功后,任何用户都只能访问连接请求里声明的那个数据库。 非 三权分立 下,

    2024年02月08日
    浏览(59)
  • openGauss学习笔记-18 openGauss 简单数据管理-WHERE子句

    当我们需要根据指定条件从表中查询数据时,就可以在SELECT语句中添加WHERE子句,从而过滤掉我们不需要数据。WHERE子句构成一个行选择表达式,用于指定条件而获取的数据,如果给定的条件满足,才返回从表中的具体数值。 18.1 语法格式 18.2 参数说明 WHERE子句 WHERE子句构成一

    2024年02月16日
    浏览(52)
  • openGauss学习笔记-105 openGauss 数据库管理-管理用户及权限-默认权限机制

    数据库对象创建后,进行对象创建的用户就是该对象的所有者。openGauss安装后的默认情况下,未开启 三权分立 ,数据库系统管理员具有与对象所有者相同的权限。也就是说对象创建后,默认只有对象所有者或者系统管理员可以查询、修改和销毁对象,以及通过 GRANT 将对象的

    2024年02月07日
    浏览(56)
  • openGauss学习笔记-60 openGauss 数据库管理-逻辑存储结构

    openGauss的数据库节点负责存储数据,其存储介质也是磁盘,本节主要从逻辑视角介绍数据库节点都有哪些对象,以及这些对象之间的关系。数据库逻辑结构如 图1 。 图 1 数据库逻辑结构图 说明: Tablespace,即表空间,是一个目录,可以存在多个,里面存储的是它所包含的数据

    2024年02月09日
    浏览(53)
  • openGauss学习笔记-11 openGauss 简单数据管理-INSERT INTO语句

    在创建一个表后,表中并没有数据,使用这个表之前,需要向表中插入数据。INSERT INTO语句用于向表中插入新记录。该语句可以插入一行数据也可以同时插入多行数据。 11.1 语法格式 11.2 参数说明 table_name 要插入数据的目标表名。 取值范围:已存在的表名。 column_name 目标表中

    2024年02月17日
    浏览(48)
  • openGauss学习笔记-102 openGauss 数据库管理-管理数据库安全-客户端接入之查看数据库连接数

    102.1 背景信息 当用户连接数达到上限后,无法建立新的连接。因此,当数据库管理员发现某用户无法连接到数据库时,需要查看是否连接数达到了上限。控制数据库连接的主要以下几种选项。 全局的最大连接数:由运行参数max_connections指定。 某用户的连接数:在创建用户时

    2024年02月07日
    浏览(62)
  • openGauss学习笔记-61 openGauss 数据库管理-常见主备部署方案

    61.1 单中心 图 1 单中心部署图 组网特点: 单AZ部署,可以配置一个同步备一个异步备 优势: 三个node完全等价,故障任意一个node都可以提供服务; 成本低。 劣势: 高可用能力较低,发生AZ级故障只能依赖节点恢复; 适用性: 适用于对高可用性要求较低的业务系统。 61.2 同

    2024年02月09日
    浏览(47)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包