Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 为Postgres中当前定义的所有角色设置默认ACL_Postgresql - Fatal编程技术网

Postgresql 为Postgres中当前定义的所有角色设置默认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

我想为PostgreSQL中的所有角色(即不使用PUBLIC)设置默认ACL,并希望避免枚举


有没有一种简单的方法可以做到这一点?

您可以通过以下方式做到这一点:

为随后在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(也许我应该明确提到)