相关疑难解决方法(0)

在 postgres 中创建一个新的只读用户

我想postgresql在 Ubuntu 机器上的现有数据库中创建一个新用户。我想授予此用户对所有表的只读访问权限。

我该怎么做?我是否也需要在 Ubuntu 上创建一个新用户?

谢谢,

乌迪

postgresql user-management read-only

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

如何将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 ×2

user-management ×2

read-only ×1