我想在PostgreSQL中为所有角色设置默认ACL(即不使用PUBLIC)并且想要避免枚举。
有一种简单的方法吗?
答案 0 :(得分:1)
您可以通过以下方式执行此操作:
为随后在架构myschema中创建的所有表(和视图)的每个人授予SELECT权限:
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO PUBLIC;
并允许角色webuser也插入它们:
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT INSERT ON TABLES TO webuser;
并撤消上述内容:
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE SELECT ON TABLES FROM PUBLIC;
ALTER DEFAULT PRIVILEGES IN SCHEMA myschema REVOKE INSERT ON TABLES FROM webuser;
那就是:)