微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

关于PostgreSQL数据库中的表空间,user,role,权限,模式(schema)的概念.

关于Postgresql数据库中的表空间,user,role,权限,模式(schema)的概念.
转自:<<数据架构师的Postgresql修炼--高效设计开发与维护数据库应用>>


表空间:

在PG中,表空间是文件系统中位置的一个链接,也就是一个目录.
表空间是一个可以保存所有其他对象的容器,如表,索引等.

在很多情况下,这样的功能是很有用的.也就是说:在一个指定的位置保存数据,而不是在认的位置.

存在如下一个场景:当我们用完初始化数据库集群所使用的分区上的空间时,就可以使用表空间.
另外一个适用的场景是:处于性能考虑,移动具体对象到速度不同的磁盘上.
可以在一个比较快磁盘的表空间上创建一组频繁访问的对象.
或者是,在比较快的磁盘上使用OLTP业务,在比较慢的磁盘上运行OLAP业务.

当我们初始化一个集群的时候,可以得到两个认表空间,
一个表空间成为pg_default,所有用户创建的并且未指定一个表空间的对象讲在pg_default表空间内被创建.
pg_default表空间的位置PGDATA下的基础目录.

一个表空间是pg_global,它持有集群(cluster)中所有数据库共享的系统表.

模式:

模式(schema):我们在pg数据库中创建的任何对象(表,索引,视图等)都会在一个模式下被创建.

当创建对象时,如果未指定模式,这些对象将会在认的模式下被创建.这个模式叫做public. 一个例外情况是另一个模式首先出现在search_path中. 角色和权限 在pg中,一个角色几乎与一个用户相同.因为一个角色可以是用户,也可以是一个用户组. create user命令等同于create role,除了一点:create user有隐含的login权限.而create role不会有该权限. 每个角色是整个cluster所共享的,角色不是某个数据库特有的. 为了在数据库实现有效操作,用户必须获得相关权限. 在pg中,权限可以针对数据库级别设定,也可以针对单个对象级别(表,视图,函数等)进行设定. 权限有select,delete,update,insert,execute 还有创建对象的权限,删除对象的权限 在pg中,可以把一个特定权限给一个user 也可以把一个特定权限给一个role role的一个重要特点就是可以被继承. 举例: 我们可以创建一个report_user角色,然后在一组table中将select权限授予这个角色. 然后,为从事报告工作的每个人各自创建user,并将report_user 角色授权给这些user. 当其中一个user离开部门时,我们只要删除用户所创建的登录即可. 注意:本文是写博客以来的第1001篇文章.文章的计算口径包括所有文章---原创,转载,翻译等等.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐