看到知乎上一个关于MySQL和PostgreSQL的话题的一条评论,无语了,都2025年3月15日了。大多数时候,从互联网上想得到一条客观的观点真的是太难了,其实有不同观点,或贬或褒,只要有理有据都能接受,百花齐放,百家争鸣,辩论是辩论,喷是喷,这就是一个典型的喷子。
看到这个评论,有点无语,当我们面对新事物的时候,经验可以复用,但是不可复印,经验还有可能是把双刃剑,可帮到你,也可以误导你。
当笔者在2018年左右第一次接触PostgreSQL的时候,也遇到了一个一模一样的问题,当时就是用固有的“经验”去设置这个权限,结果“新建的表没有获得事先设置好的权限”,当时查阅了一下资料解决了。没想到有人不但没有解决,还喷了起来。
PostgreSQL中想解决上述问题,如下- --第一步创建用户
- create user my_user with password 'my_password';
- --第二步创建表
- create table myschema.table1
- (
- id int
- )
- --第三部授权用户对schema下表的访问权限,包括了现有的表table1
- GRANT USAGE ON SCHEMA myschema TO my_user;
- grant select on all tables in schema myschema to my_user;
- --第四步再次创建第二张表table2
- create table myschema.table2
- (
- id int
- )
- --第五步切换到第一步的用户,发现他有myschema.table1的select权限,没有myschema.table2的select权限,这就是开喷的理由?
- select * from myschema.table2;
- --如果想要这个用户,对当前这个schema的下现有的表,以及将来的表都有权限,那么需要重新对新增的表授权,然后再授权default privileges
- grant select on all tables in schema myschema to my_user;
- alter default privileges in schema myschema grant select on tables to my_user;
复制代码
来源:程序园用户自行投稿发布,如果侵权,请联系站长删除
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作! |