暂无图片
分享
yBmZlQzJ
2022-11-30
openGauss数据库、用户和模式的关系和访问方式, 模式是在数据库层面,用户是在实例层面

我有点懵,今天的学习内容有没有大佬多举几个例子说明一下 模式是在数据库层面,用户是在实例层面,谢谢。

收藏
分享
10条回答
默认
最新
qabel12

模式是用来方便管理数据库中对象的。用户是实例层面,是说一个用户可以管理多个数据库。模式不能抛开数据库单独存在,只能归属于某个数据库。用户跟数据库无关,一个用户只要有权限,可以创建多个数据库的。

暂无图片 评论
暂无图片 有用 0
暂无图片
风车
2022-11-30
许玉冲

一个用户可以对应多个数据库。

一个数据库可以存在多个scheme.模式

暂无图片 评论
暂无图片 有用 0
超越无限D

用户和数据库是一对多的关系;

暂无图片 评论
暂无图片 有用 0
刘贵宾
暂无图片 评论
暂无图片 有用 6
游湖

一个用户下可以有好多数据库。一个schema存在于某一个数据库当中。

暂无图片 评论
暂无图片 有用 1
锁钥

OG(openGuass) :
实例( Instance ) > 用户( User ) > 数据库( Database ) > 模式( Schema )

一个实例可以创建多个用户,一个用户可以操作多个数据库,而一个数据库里面可以包括多个模式。模式之间彼此隔离,故不同模式中可以创建同名的对象(表、视图、函数等)。只要有权限,每个schema的对象是可以互相调用的。

对比MySQL:MySQL一个数据库对应OG一个模式,MySQL数据库之间可以相互访问,OG数据库之间彼此隔离,但模式之间可以相互访问。故MySQL迁移到OG时一个数据库对应OG一个模式。

暂无图片 评论
暂无图片 有用 0
风车

暂无图片 评论
暂无图片 有用 0
怕晒的太阳

DB实例与schema: 模式是数据库实例的逻辑分割。数据库是被模式(schema)来切分的,一个数据库至少有一个模式,所有数据库内部的对象(object)是被创建于模式下。用户登录到系统,连接到一个数据库后,是通过该数据库的search_path来寻找schema的搜索顺序:可以通过命令SHOW search_path。你看看上一节课,用户一次只能连接到一个数据库,没法访问其他数据库的对象。(注:本实验没有使用dblink插件)。

暂无图片 评论
暂无图片 有用 0
杜红林

一、首先,我们要搞清楚,数据库和实例的关系;
数据库和实例 2.png
数据库一般都是C/S结构:
1.客户端:通过TCP(三次握手,以便确认对方收到了信息;滑动窗口机制)与服务器之间建立会话(session),客户端不能直接去访问底层的数据库文件;
2.接下来看服务器:由于客户端不能直接去访问底层的文件,这时候必须要借助于中间桥梁(也就是实例),其实实例就是(共享内存+进程或者线程),实例主要是:监控内存和进程的信息,保证数据库能不能访问呀什么的。实例中的后台进程(线程)再去操控—数据文件(数据库其实就是----磁盘上的相关的一组文件);
3.一般来说,一个数据库对应一个实例,MySQL集群存在多个实例对应一个数据库,达梦DSC(数据共享集群)也是多个实例对应一个数据库。
下面给出具体的说明:

1.数据库(Database)
物理操作系统文件或磁盘数据块的集合
比如数据文件,索引文件,结构文件。
并非所有的数据库系统都是基于文件的,也有直接把数据写入数据存储的形式。
2.数据库实例(Database Instance)
实例指的就是操作系统中一系列的进程以及为这些进程所分配的内存块。
数据库实例是程序,是位于用户和操作系统之间的一层数据管理软件。
数据库实例是访问数据库的通道。用户对数据库中的数据做任何的操作,包括数据定义、数据查询、数据维护、数据库运行控制等等都是在数据库实例下进行的,应用程序只有通过数据库实例才能和数据库打交道。
3.通常来说一个数据库实例对应一个数据库。
二、接下来,我们看模式和用户之间的关系:
创建用户会生成一个与用户名同名的模式,模式表示的是一系列数据对象的集合!当然为了安全起见,做了权限隔离!
打个比喻:模式表示的就是房子,用户就是这个房子的房主,当然一个用户可以拥有多个房子。而创建用户的同时会生成与用户同名的模式(相当于落户到了某个小区)。我们说模式是一系列的数据对象的集合,你也可以理解为房子里面会有很多家居、家电、橱柜呀等等,这些就是数据对象。为了安全起见,每个房子和另外一间房子物理是隔离的,而openGauss采用角色进行权限进行隔离。
建议在实际使用中,一个用户对应一个模式。

下面给出具体的说明:
1.每个实例下允许创建多个数据库(database),每个数据库下允许创建多个模式(schema),每个模式下允许创建多个对象,比如表、函数、视图、索引等,每个表又可以依据行和列两个维度进行衡量。
database.png
2.openGauss数据库采用基于角色的权限访问控制模型,利用角色来组织和管理权限,能够大大简化对权限的授权管理。借助角色机制,当给一组权限相同的用户授权时,只需将权限授予角色,再将角色授予这组用户即可,不需要对用户逐一授权。而且利用角色权限分离可以很好地控制不同用户拥有不同的权限,相互制约达到平衡。
数据库和模式.png

暂无图片 评论
暂无图片 有用 0
Oracle

学习了

暂无图片 评论
暂无图片 有用 0
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
暂无图片墨值悬赏