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这张表了,所以,在搜索的时候建议按照数据字典搜索:

相关推荐
阳光九叶草LXGZXJ6 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
字节渡客6 小时前
Redis键明明过期了,业务还在读到旧数据
数据库·redis·spring
OnlineProxy9 小时前
亚马逊多账号运营:如何在规避“关联封号”风险的同时实现电商规模化扩张
服务器·数据库·redis
辻弋20110 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
可乐鸡翅yeah_11 小时前
业务中 M3U8 水印相关坑,硬水印和动态水印区别
前端·网络·数据库·ffmpeg·m3u8在线
石头麻辣鱼11 小时前
Bamboo 调度系统 OceanBase 适配实战:存储过程迁移踩过的三个大坑
数据库
龙亘川11 小时前
数智驱动民政升级 精准守护民生保障
大数据·数据库·人工智能
念何架构之路12 小时前
zap扩展生态与总结
java·前端·数据库
晚安日记wanna12 小时前
MySQL 回表为什么这么慢?5 种优化手段逐个拆解
数据库·mysql·性能优化
第七页独白12 小时前
汽车零件厂如何通过 QMS 真正落地 IATF 16949——QMS软件系统:品质检验-内审稽核-8d客诉管理:全星质量管理软件系统
java·前端·数据库