【发布时间】:2021-12-31 02:02:44
【问题描述】:
我有一个用户,它应该只能读取数据库中的所有内容,但只能读取特定的架构。
每个帐户都会一直添加新架构,因此我宁愿允许所有内容,然后拒绝该特定架构,而不是允许新架构进入。
我想做这样的事情:
GRANT pg_read_all_data TO user;
REVOKE ALL ON SCHEMA xx FROM user;
如何实现?
【问题讨论】:
我有一个用户,它应该只能读取数据库中的所有内容,但只能读取特定的架构。
每个帐户都会一直添加新架构,因此我宁愿允许所有内容,然后拒绝该特定架构,而不是允许新架构进入。
我想做这样的事情:
GRANT pg_read_all_data TO user;
REVOKE ALL ON SCHEMA xx FROM user;
如何实现?
【问题讨论】:
您必须单独授予所有其他架构中所有对象的权限:
GRANT USAGE ON SCHEMA mayread1 TO somerole;
GRANT SELECT ON ALL TABLES IN SCHEMA mayread1 TO somerole;
GRANT SELECT ON ALL SEQUENCES IN SCHEMA mayread1 TO somerole;
对所有模式重复上述操作,但要拒绝访问的模式除外。
【讨论】: