先上图一张大而全:

在具体掌握postgresql权限概念之前,首先我们要准确而透彻地了解postgresql的对象层级,如果没法做到那么准确,我来教你啊:
【重点】postgresql对象层级:数据库(database)->模式(schema)->表(table)
再参照上图可以总结出结论:
数据库(database)权限
1、包括Connect、Create、Temporary;
2、Connect很好理解,就是连接数据库的权限,默认创建用户即具有该权限;
3、Create其实是创建下一个层级对象的权限,在这里就是创建模式的权限。
模式(schema)权限
1、包括Create,Usage;
2、Create同样是创建下一个层级对象的权限,在这里就是创建表的权限;
3、Usage就是除了建表权限之外的其他DDL权限,包括删表,修改表结构等。
【知识重点】
个人一直认为postgresql的权限机制是比较割裂的,最明显的体现:即使对schema赋权所有权限,也无法拥有对其表对象数据内容的DML、DQL操作权限。
表(table)权限
1、包括Delete,Insert,References,Select,Trigger,Truncate,Update,这些权限的说明就不多加赘述了。
接下来具体实操:(示例库名:mydb,示例用户名:readonly,示例模式名:myschema)
授予权限:
语法规范

最低0.47元/天 解锁文章
1095

被折叠的 条评论
为什么被折叠?



