暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

ALTER DEFAULT privileges 的小插曲

单眼皮 2024-09-21
103

背景需求:

授权用户可以访问produser模式下新添加的表。

pgcmdb的owner是produser,并且有同名的produser模式,未授权前,testuser无法查看produser.app表,如下图


GRANT usage ON SCHEMA produser TO testuser;

GRANT SELECT ON ALL tables IN SCHEMA produser TO testuser;


经过授权可以查看produser.app表了,但是produser新建的表还是无法查看


需要执行 ALTER DEFAULT privileges IN SCHEMA produser GRANT SELECT ON tables TO testuser;

在这个地方由于我的不小心,插曲出现了,我选择了用postgres超级用户来执行这个赋权语句


发现还是没有权限读取produser新建的表。经过验证测试,发现 想让testuser有权限读取produser新建的表,就必须以produser来执行ALTER DEFAULT privileges IN SCHEMA produser GRANT SELECT ON tables TO testuser;

当前我们是以postgres用户执行赋权的,因此 postgres用户在prouser模式下的建的表,testuser是有权限读取的。


当我们以produser再次执行ALTER DEFAULT privileges IN SCHEMA produser GRANT SELECT ON tables TO testuser; 后,testuser也可以查看produser新建的表了。



个人理解 ALTER DEFAULT privileges 类似于oracle的profile概要文件,根据当前登陆的用户是谁,alter default针对的是当前用户的default设置。 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论