Postgresql 为Postgres中当前定义的所有角色设置默认ACL
我想为PostgreSQL中的所有角色(即不使用PUBLIC)设置默认ACL,并希望避免枚举Postgresql 为Postgres中当前定义的所有角色设置默认ACL,postgresql,Postgresql,我想为PostgreSQL中的所有角色(即不使用PUBLIC)设置默认ACL,并希望避免枚举 有没有一种简单的方法可以做到这一点?您可以通过以下方式做到这一点: 为随后在schema myschema中创建的所有表(和视图)的所有人授予SELECT权限: ALTER DEFAULT PRIVILEGES IN SCHEMA myschema GRANT SELECT ON TABLES TO PUBLIC; 并允许角色webuser也插入其中: ALTER DEFAULT PRIVILEGES
有没有一种简单的方法可以做到这一点?您可以通过以下方式做到这一点: 为随后在schema 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;
就是这样:)每个人!=所有角色。我想做的是避免使用PUBLIC(也许我应该明确提到)