当前位置: 首页 > news >正文

广东中山网站建设蔡家坡网站开发

广东中山网站建设,蔡家坡网站开发,如何建个人网站视频,推荐一些做电子的网站初次接触openGauss或GaussDB数据库的逻辑对象,被其中的表空间、数据库、schema和用户之间的关系,以及授权管理困惑住了,与熟悉的MySQL数据库的逻辑对象又有明显的不同。本文旨在简要梳理下GaussDB数据库逻辑对象之间的关系,以加深…

初次接触openGauss或GaussDB数据库的逻辑对象,被其中的表空间、数据库、schema和用户之间的关系,以及授权管理困惑住了,与熟悉的MySQL数据库的逻辑对象又有明显的不同。本文旨在简要梳理下GaussDB数据库逻辑对象之间的关系,以加深理解。


1、GaussDB数据库逻辑对象
1.1 表空间、Database和表

GaussDB数据库中逻辑对象包括表空间、Database和表、索引等,其中Database是数据的集合、表空间是数据在物理上的位置,数据库中的所有对象都存储在表空间中。

  • 表空间Tablespace:表空间是一个目录,数据库中可以存在多个表空间,其中存储的是它所包含的数据库的各种物理文件。每个表空间可以对应多个Database。gaussdb中系统默认表空间pg_default,当建表时未指定表空间都使用默认表空间。
  • Database:数据库是逻辑上的抽象,各个database之间相互隔离,同一个database上的数据库对象可以存在多个表空间中。Gaussdb中会默认创建postgres数据库
  • 表Table:Table是数据的结构化视图,存储特定类型的数据。每张表只能属于一个数据库,也只能对应到一个Tablespace。每张表对应的数据文件必须在同一个Tablespace中。

在这里插入图片描述

其中关系如图所示,总结如下:

  • 数据库实例中可以定义多个Database和表空间;
  • 一个Database中可以包含多个表空间;
  • 一个表空间中可以包含多个数据库;
  • 一个数据库中可以包含多个表;
  • 一个表必须属于一个数据库,并存储在一个表空间中。
1.2 用户和Schema

GaussDB数据库中用户user、角色role和schema各自不同的作用:

  • 用户是数据库中的实体,用于标识和管理数据库中的各种操作权限和资源使用权限。每个用户都有唯一的用户名,用于登录数据库和执行相关操作。在GaussDB中,用户和用户组在实例范围内是共享的,也就是默认情况下通过单个用户可以连接到任一数据库,但是数据不是共享的,受到权限的管控。
  • 角色是一组用户的集合,通过角色可以将权限授予一组用户,而不是单独授予每个用户。角色可以包含其他角色,形成层次结构。通过为角色分配权限,然后将角色授予用户,可以实现权限的快速分配和撤销。
  • Schema是数据库对象的集合,它包含了数据库中的所有表、视图、存储过程、函数等对象。每个数据库可以包含一个或多个Schema,用于将数据库对象组织成逻辑上独立的组。通过Schema,可以允许多个用户使用同一数据库而不相互干扰,将数据库对象组织成易于管理的逻辑组。在数据库创建后,会有一个默认的名为Public的schema。

需要注意的是,在GaussDB中,每次创建新用户时,系统会在当前登录的数据库中默认为新用户创建一个同名Schema,此时在当前数据库中创建同名的schema会提示已存在。对于其他数据库,若需要同名Schema,则需要用户手动创建。

另外,如果未指定schema访问表时,系统会通过search_path(搜索路径)来判断该表是哪个schema下的表(其中pg_temp和pg_catalog默认会作为搜索路径顺序中的前两位)。search_path(搜索路径)是一个schema名列表,在其中找到的第一个表就是目标表,如果没有找到则报错。在搜索路径中的第一个schema叫做current schema(通过show current_schema可以查看),在没有声明schema名时,新创建的数据库对象会默认存放在该schema下。

在这里插入图片描述

用户、Database和schema之间关系如图所示,总结如下:

  • 每个数据库中可以包含多个用户,用户在实例范围内是共享的;
  • 每个数据库中可以定义多个schema,schema之间是互相隔离的,不同数据库之间可以定义相同的schema名;
  • 每个schema包含多个数据库对象,但每个数据库对象只能属于一个Schema。

用户对不同的Database中不同schema的访问通过设置不同的权限进行管理控制。

1.3 不同对象之间权限管理

GaussDB数据库中的权限管理沿用了Oracle数据库的权限管理特性,权限层级分为多个级别,包括系统权限和对象权限:

  • 系统权限:系统规定用户使用数据库的权限,如登录数据库(LOGIN)、创建数据库(CREATEDB)、创建用户/角色(CREATEROLE)等。
  • 对象权限:指在数据库对象(如数据库、模式、表、视图、函数等)上执行特殊动作的权限,如查看(SELECT)、更新(UPDATE)、插入(INSERT)、删除(DELETE)等。

在对角色和用户授权时候,主要有以下场景:

  1. 将系统权限授予角色或用户:比如授予数据库管理员SYSADMIN、MONADMIN权限,监控用户MONADMIN权限;
  2. 将数据库对象授予角色或用户:将数据库对象的相关权限授予特定的角色或用户,比如对schema的所有权限、schema下表的所有权限。
  3. 将角色或用户授予其它用户或角色:将一个角色或用户的权限授予其它多个角色,比如创建了一个只读的角色,将该role授予其它用户。
  4. 将ANY权限授予角色或用户:ANY权限有很多种,比如CREATE ANY、SELECT ANY,当授予SELECT ANY TABLE权限给某个用户后,该用户在当前数据库下既有所有schema的查询权限,对于一些只读的查询用户还是很方便的。

GaussDB数据库中的权限管理颗粒度非常细,按照最小授权的原则管理上也相当复杂,因此在实际授权过程中按照schema和schema内的对象维度进行分别授权,全局的只读用户具备SELECT ANY的权限、业务读写用户具备对象级别的增删改查权限、系统视图如pg_catalog和sys等的查询权限。不过需要注意的是:

  • DBE_PREF系统schema访问需要MONADMIN权限,单独授予SELECT权限不生效;
  • Schema内的对象授权时,需要具备schema的usage权限才能正常访问其中的schema;
1.4 MySQL数据库中逻辑对象对比

在MySQL数据库中,数据库也是存储数据的容器,它包含了表、视图、存储过程、函数、触发器、事件等数据库对象。

  • schema通常与数据库是同义词,指的是数据库结构的集合,创建一个新的数据库时,实际上已经创建了一个新的schema。
  • 表也是数据库中最基本的存储单元,它以行和列的形式存储数据。
  • 表空间在innodb存储引擎中分为系统表空间和数据表空间,系统表空间包含数据字典、事务信息和undo日志等信息,而打开innodb_file_per_table配置后会为每张表单独创建一个表空间文件,每个表空间文件中存放的是数据、索引和插入缓存等信息。

因此,在逻辑结构上MySQL系的数据库中的数据库实例与GaussDB数据库中的database相当,一个数据库中可以创建多个database或schema,每个database中又可以创建不同的表,不同database间共享系统表空间和资源。

1.5 总结

总结GaussDB数据库的逻辑对象之间的关系,如下图所示:

  1. 在逻辑层面,GaussDB数据库以不同的database进行逻辑上的区分,一个数据库实例中可以定义多个database,database内可以定义不同的schema、schema内又包含不同的数据库对象。
  2. 在物理存储层面,表空间对应的是实际的数据存储目录,同一个database可以使用不同的表空间、同一个表空间又可以被不同的database使用。不过在实际使用过程中建议使用默认的表空间。
  3. 在权限控制上,通过对不同用户或角色授予不同对象的访问权限进行细粒度的权限管控,达到最小化授权的目的。

在这里插入图片描述


参考资料:

  1. https://doc.hcs.huawei.com/db/zh-cn/gaussdbqlh/24.1.30
  2. https://blog.csdn.net/weixin_38623994/article/details/100047552
  3. https://bbs.huaweicloud.com/blogs/236381
http://www.yayakq.cn/news/63993/

相关文章:

  • 手工做衣服的网站廉江网站开发公司
  • 网站建设风格乐山网站开发
  • 南通做网站需要多少钱重养网站建设
  • 中卫网站推广优化公司求职seo推荐
  • 云服务器怎么上传网站网页游戏开发入门
  • 宣武郑州阳网站建设网站内容设计
  • 做玩具订制网站好处泰安网络建设
  • 淘宝网pc首页宁波seo关键词如何优化
  • 遵义网站建设价格文化馆门户网站建设的作用及意义
  • 有了域名 接下来怎么做网站阿里云wordpress搭建网站
  • 怎么做网站推广和宣传淘宝客如何做返积分制网站
  • 国外自适应网站模版专业广州网站设计
  • 如何自己做网站挣钱如何在手机上开发软件
  • 网站欣赏网站建网站 需要签署协议
  • 网站建设初期的需求分析成都解封公告
  • 网站备案 法人怎样查看网站是否备案
  • 如何做网站快照网站做优化一开始怎么做
  • aspit网站源码带手机版成都app程序开发
  • 企业网站建设中重庆网站建设模板服务
  • 民勤县建设局网站全国建筑一体化平台管理系统
  • 长沙网站开发在线咨询建站运营新闻
  • 网站建设工作不足及整改天河区建网站
  • 做网站怎么报价摄影网站模板源码
  • 网站版心怎么做手机网站策划书方案
  • 网站优化垂直化好还是扁平化好免费域名申请国外
  • 大连做企业网站哪家好保定的网站建设
  • 帝国cms建站实例教程互联网推广营销推荐隐迅推
  • 哪些网站有二维码开发者大会
  • 珠海企业网站建设费用如何做小程序平台
  • 网页后端开发wordpress手机版优化