暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

greenplum 数据库、模式、表空间、role 的含义与关系

greenplum 数据库、模式、表空间、role 的含义与关系(基于 4.3.30 版本)


  1. role
    1. 在 GP 中是通过 role 来控制数据库的访问权限,role 包含两个概念一个是 user 一个是 group。两者的创建方式没有明显的区别,主要是看创建者的使用方式以及赋予权限。一个 role 可以成为其他 role 的父类使其子类拥有本身的权限,也可以成为任意 role 的子类拥有其父类的权限。
  2. 模式(schema)
    1. 什么是模式?
      1. greenplum 中的模式指的是 schema,可以在数据库中创建多个模式来管理同名表,通过 "模式名. 表名" 的方式。数据库中默认有一个 public 模式,如果在创建对象时不指定模式名,这个对象的默认模式就是 public。比如建表的完整语句 create table public.t1。查询表也是一样如 select * from public.t1,如果不加模式名将会以当前登录的用户名做隐含访问。一个集群中有会有多个数据库,如果做一个关系的总结应该是 “gp 集群” > databases > schema > object。
    2. 为什么需要模式
      1. 方便用户的管理用户可以在集群中创建不同模式名同表名的对象。
      2. 把需要使用的多个对象变为一个模式,方便使用。
  3. 表空间
    1. 什么是表空间?
      1. 表空间是实际的数据存储的地方。用来存放数据库对象物理文件的位置
    2. 表空间的作用:
      1. 通过表空间 dba 可以优化集群磁盘的使用,提高业务效率,比如,可以在读写效率比较高的磁盘上建立表空间将常用的数据放在上面。将不常用的数据放在读写效率低的磁盘上。
  4. 表空间与数据库的关系
    1. 与模式相同的是,greenplum 数据库同样有默认的表空间 pg_default。在 gp 中数据库的创建通过克隆默认的数据库模板 template1 来创建,template1 数据库的默认模板就是 pg_default。
    2. 在物理环境中表空间的表达方式就是一个目录,里面存储的是它所包含的数据库的各种物理文件。
  5. 表空间、数据库、角色、模式及表之间的关系
    1. 简单的说表空间就是目录,是 databases 中对象在物理存储上的位置,databases 就是 object 的集合,而 schema 就是用来管理 object 的方式
    2. role 则是用来管理数据库 object 的权限的系统,role 可以登录任意的 databases 只需要拥有其权限。一般 role 会有一个默认登陆的 databases 在 pg_hba 文件中配置。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论