PostgreSQL权限管理的一个小细节
看到知乎上一个关于MySQL和PostgreSQL的话题的一条评论,无语了,都2025年3月15日了。大多数时间,从互联网上想得到一条客观的观点真的是太难了,其实有差别观点,或贬或褒,只要有理有据都能担当,百花齐放,百家争鸣,辩论是辩论,喷是喷,这就是一个典范的喷子。看到这个评论,有点无语,当我们面对新事物的时间,履历可以复用,但是不可复印,履历还有可能是把双刃剑,可帮到你,也可以误导你。
当笔者在2018年左右第一次接触PostgreSQL的时间,也遇到了一个一模一样的问题,当时就是用固有的“履历”去设置这个权限,效果“新建的表没有获得事先设置好的权限”,当时查阅了一下资料解决了。没想到有人不但没有解决,还喷了起来。
https://img2024.cnblogs.com/blog/380271/202503/380271-20250314172112536-1955650833.png
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 方式授权
alter default privileges in schema myschema grant select on tables to my_user;
免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
页:
[1]