网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
查询模式的权限
如果我们使用psql命令行界面,我们可以使用\d+命令来列出所有的模式和相关的权限。
如图所示,第一列为模式名,有两个模式,一个为默认创建的public,还有一个为之前手动创建的test模式。
本文只关注public这个模式,第二列中显示它的所有者为角色“postgres”。除非特定指出,模式的所有权属于创建这个模式的角色。
第三列显示出访问权限。
第四列显示了相关的描述信息。
第三列的访问权限是本文接下来要主要介绍的部分。
权限信息的格式包含三部分,从左到右为:接受权限者、权限、权限授予者。例如,图中所示的权限信息可以解读为:postgres(接受权限者)=UC(权限)/postgres(权限授予者)。
对模式来说,只有两种可能被授予的权限:USAGE和CREATE,对应权限信息中分别为U和C。
USAGE权限允许角色查询数据库对象,例如包含在模式中的表和视图。
CREATE权限允许角色在模式中创建数据库对象。
需要注意的是:
可能会出现多个相关的权限信息,此时列出权限信息的时候会使用加号来分隔。而且我们注意到public模式的权限信息中,第二行里接受权限者为空字符串,这代表权限会授予给所有的用户。
综上所述,public模式的权限配置比较灵活,但是也易导致一些安全隐患,所以如果不需要使用public模式可以将它删除或者撤销默认的权限来将它锁定,我们将在下一篇文章中介绍相关的操作。
网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!**