ocp考试资料群:569933648 验证码:ocp ocp 12c 19c考试题库解析与资料群:钉钉群号:35277291
全部博文(486)
分类: mysql/postgresql
2023-03-02 15:43:57
postgresql从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对pg基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱pg、学习pg的同学们有帮助,欢迎持续关注cuug pg技术大讲堂。
part 7:pg用户与schema关系
内容1:postgresql schema概述
内容2:postgresql 用户与schema
内容3:postgresql schema管理
内容4:postgresql public schema
内容5:postgresql 模式使用建议
7.1、schema概述
什么是schema(模式)? 用户对象的集合叫做模式。比如:scott用户下有表emp、dept、salgrade等,还有几个索引,还有一些约束等等,那么scott用户下所有对象的集合就叫scott模式。
可以把用户下拥有的对象根据业务分类,不同的对象存放在不同的模式下。
新建的数据库默认会创建不同的模式来管理对象。比如:information_schema、pg_catalog、pg_temp_1、pg_toast、pg_toast_temp_1、public 等。
不同的schema下可以有相同名字的表、函数等对象,互相之间是不冲突的。只要有权限,每个schema的对象是可以互相调用的。
7.2、用户与模式对应关系
一个用户可以创建与拥有多个模式。
一个模式只能属于一个用户。
普通用户创建模式时需要授权在指定的数据库下创建模式的权限。
grant { { create | connect | temporary | temp } [, ...] | all [ privileges ] }on database database_name [, ...] to role_specification [, ...] [ with grant option ] 创建用户示例
7.3、管理模式
授权
grant create on database testdb to u1;
创建模式
create schema sport; create schema art;
查看模式
testdb=> \dn
list of schemas
name | owner
------ -------
art | u1
public | postgres
sport | u1
授权某个模式下的对象访问权限给其它用户,则需要先授权访问该模式的权限给其它用户
grant usage on shema sch_name to role_name;
grant select on sch_name.tab_name to role_name;
删除模式,模式只能由其拥有者或超级用户删除
drop schema schema_name;
删除模式时同时删除所依赖的对象
drop schema chema_name cascade;
7.4、public模式
初始化数据库时会自动创建一个public模式,共享给所有用户使用,任何用户都可以把对象创建在该模式下,由于postgresql下一个用户对应多个模式,创建用 户时没有创建对应的默认模式,而对象都是基于模式管理的,所以创建一个公用 的模式public。
基于数据库安全考虑,可以删除public模式(可选)。
7.5、模式使用建议
oracle数据库一个用户对应一个模式,且名字一样。
postgresql数据库可以规划成一个用户对应多个模式。
基于简化管理的目的,可以规划成一个用户对应一个与用户名一样的模式。
以上就是part 7 - pg用户与模式 的内容,大家可以进群一起探讨,钉钉交流群:35,82,24,60,往期视频可以联系cuug咨询老师