小编Ken*_*Ken的帖子

如何将PostgreSQL“GRANT ALL ON ALL TABLES”应用于新表?

正如在GRANT SELECT 对 postgresql 中的所有表的问题中所讨论的那样,从 PG 9.0 开始,您可以使用如下命令将所有现有表的权限批量授予用户 u:

GRANT ALL ON ALL TABLES IN SCHEMA public TO u;
Run Code Online (Sandbox Code Playgroud)

以 u 身份登录,您现在可以对预先存在的表 a 执行此操作:

SELECT * FROM a;
Run Code Online (Sandbox Code Playgroud)

但是,如果您现在创建表 b 并执行以下操作:

SELECT * FROM b;
Run Code Online (Sandbox Code Playgroud)

你得到:

ERROR: permission denied for relation b
SQL state: 42501
Run Code Online (Sandbox Code Playgroud)

这可以通过重新执行来解决

GRANT ALL ON ALL TABLES IN SCHEMA public TO u;
Run Code Online (Sandbox Code Playgroud)

但是每次创建表后都必须记住这样做是一个问题。

有没有办法让 PostgreSQL 自动将这些全局授权应用于新创建的表?

~ 提前致谢 ~ 肯

postgresql user-management

8
推荐指数
1
解决办法
2万
查看次数

标签 统计

postgresql ×1

user-management ×1