网上学习资料一大堆,但如果学到的知识不成体系,遇到问题时只是浅尝辄止,不再深入研究,那么很难做到真正的技术提升。
一个人可以走的很快,但一群人才能走的更远!不论你是正从事IT行业的老鸟或是对IT行业感兴趣的新人,都欢迎加入我们的的圈子(技术交流、学习资源、职场吐槽、大厂内推、面试辅导),让我们一起学习成长!
作者:瀚高PG实验室 (Highgo PG Lab)- Kalath
我们可以通过GRANT和REVOKE命令来分别的添加或撤销模式中的相应权限。
我们先来看一下撤销权限命令的相关操作:
这条命令中,我们移除了public模式中的CREATE权限。注意,我们使用了两个public,分别为一个大写和一个小写。小写的public指的是模式,实际使用中可以被替换为数据库中其他任意有效的模式名。
而大写的PUBLIC是一个特殊的关键字,代表了all users。实际使用中可以被替换为一个特定的角色名或者以逗号分隔的角色名列表。
使用\dn+命令查询修改后的权限,发现权限信息中第二行里的C权限已经被移除,证明之前的REVOKE命令是有效的。现在,除了postgres用户以外的用户将不再能在public模式中创建表、视图或其他对象。
进一步的锁定措施可能需要通过移除USAGE权限来拒绝对模式的查询访问。
如下图所示:
我们可以看到访问权限部分中,对所有用户的权限信息已经不存在了。
之前我们是分别撤销CREATE和USAGE权限的,我们也可以通过一条命令来撤销所有的权限:
执行完的结果和分别执行撤销CREATE和USAGE权限相同。
接下来看一下授予权限的命令。
首先创建一个模式shtest用于测试。
我们可以看到,默认情况下,创建新的模式没有对应的权限信息。
接下来,我们使用GRANT命令来添加USAGE权限,使shtest模式中的所有角色能够查询数据库对象。
我们可以看到用户postgres将USAGE权限授予给了全体用户。
然后,我们以一个数据库中存在的用户u01为例,展示一下将权限授予单个用户的操作。
既有适合小白学习的零基础资料,也有适合3年以上经验的小伙伴深入学习提升的进阶课程,涵盖了95%以上软件测试知识点,真正体系化!
由于文件比较多,这里只是将部分目录截图出来,全套包含大厂面经、学习笔记、源码讲义、实战项目、大纲路线、讲解视频,并且后续会持续更新
资料的朋友,可以戳这里获取](https://bbs.csdn.net/topics/618631832)**