PG 的用户与模式

在PG中用户对象的集合叫做模式。

比如 postgres下有t1,t2,t3表,还有视图,索引等等,这些对象的集合就叫做模式。

postgres下所有对象的集合就叫做postgres模式。

不同的schema下可以有相同名字的对象。

在PG中一个用户可以拥有多个模式,一个模式只能属于一个用户。这与oracle不同,oracle中用户与模式是一一对应的。

比如:

创建一个用户u1

使用u1登录数据库

这里与oracle不同的:oracle创建一个用户默认没有任何的权限,在oracle中创建一个用户之后无法login和建表,但在PG中 新创建的一个用户默认有login和建表的权限,在PG中role没有login和建表的权限。

模式的管理方式:

1.默认管理方式

PG中创建一个表之后

比如:create table t1(......);那么该表属于public模式。

2.创建一个与用户名相同的模式,把所有的对象放在该模式下。

即用户名=模式名。这与oracle中模式的管理方式相同。

3.自行分类,按需求创建模式进行分类

在以后建表可以把对象放在不同的模式中方便分类。

授权某个模式下的对象访问权限给其它用户,则需要先授权访问该模式的权限给其它用户。

比如:

授权gaozhong模式下的qinghuagaozhong表给u2 可以这样写:

但u2在查询qinghuagaozhong表时还不能查询:

需要先把这个模式授权给其它用户:

这样u2用户就能查询 gaozhong模式下的qinggaohuazhong表了。

4.public模式

数据库初始化的时候会自动创建一个public模式,作用是我们创建一个对象的时候没有指定模式,会默认放在public模式下。

5.搜索路径

我们在自己创建的模式下面创建表,用\d命令看不见这张表,是因为我们的搜索路径不包括这个模式:

把这些模式放到 search_path中,以后用\d命令就可以查到了

但是这里面是有一个问题的,如果我们在对象下搜索到了t1这个表,那么在public中就不会显示t1这张表了,所以,在搜索的时候建议按照数据字典搜索:

相关推荐
@大嘴巴子35 分钟前
MySQL知识回顾总结----数据库基础
数据库·mysql
lubiii_35 分钟前
SQL手工测试(MySQL数据库)
数据库·mysql·web安全·网络安全
凌辰揽月42 分钟前
Web后端基础(基础知识)
java·开发语言·前端·数据库·学习·算法
想你依然心痛1 小时前
数据库入门:从原理到应用
数据库
20242817李臻2 小时前
20242817李臻-安全文件传输系统-项目验收
数据库·安全
行思理3 小时前
MongoDB慢查询临时开启方法讲解
数据库·mongodb
bbsh20993 小时前
WebFuture 升级提示“不能同时包含聚集KEY和大字段””的处理办法
数据库·sql·mysql·webfuture
Zfox_7 小时前
Redis:Hash数据类型
服务器·数据库·redis·缓存·微服务·哈希算法
陈丹阳(滁州学院)9 小时前
若依添加添加监听容器配置(删除键,键过期)
数据库·oracle
远方160910 小时前
14-Oracle 23ai Vector Search 向量索引和混合索引-实操
数据库·ai·oracle