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

相关推荐
龙仔7251 小时前
人大金仓OS_Core数据库自动备份实施笔记(银河麒麟Linux)
linux·数据库·笔记·备份·人大金仓
sunxr.2271 小时前
Mysql-----最后一次作业
数据库·mysql
普通网友1 小时前
Python FastAPI 异步数据库管理
数据库·fastapi
晓子文集2 小时前
Tushare接口文档:期货合约信息表(fut_basic)
大数据·数据库·金融·金融数据·量化投资
三言老师2 小时前
CentOS7.9:Redis‑Cluster集群部署结构化实战教程
linux·运维·服务器·数据库
旺仔学长 哈哈3 小时前
Spring Boot 智能停车场管理系统---附源码+数据库文档
数据库·spring boot·后端·智能停车场
ClickHouseDB3 小时前
ClickHouse托管Postgres:OLTP+OLAP,新能力解锁最佳数据平台
java·前端·数据库
数智化管理手记4 小时前
主数据重复、错漏频发?一站式主数据管理平台如何落地?
大数据·运维·数据库·人工智能·数据挖掘
吴声子夜歌4 小时前
MongoDB 4.2——选择片键
数据库·mongodb
天天进步一点点4 小时前
QSqlQuery删除sqlite数据库执行drop数据表报错database table is locked unable to fetch row问题
数据库·oracle·sqlite