gpt4 book ai didi

postgresql - 如何在 AWS RDS 的 Postgres 中创建只读用户?

转载 作者:行者123 更新时间:2023-11-29 12:39:44 38 4
gpt4 key购买 nike

我在 RDS 中启动了一个 Postgres 实例,我通过以下命令创建了一个用户,但是,他们不断创建新表,我不知道如何限制他们创建。

CREATE USER my_ro_user WITH PASSWORD 'XXXXX';
GRANT CONNECT ON DATABASE "postgres" TO my_ro_user;
GRANT USAGE ON SCHEMA public TO my_ro_user;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO my_ro_user;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO my_ro_user;
REVOKE CREATE ON SCHEMA public FROM my_ro_user;

我认为最后一行中的 REVOKE 会阻止他们创建新表,但事实似乎并非如此。我做错了什么?

最佳答案

默认情况下,公共(public)角色也对公共(public)模式具有创建权限。由于 my_ro_user 是 public 的成员,因此您还需要撤销此操作:

REVOKE CREATE ON SCHEMA public FROM public;

在每个生产数据库上执行此操作通常是个好主意。

编辑:默认情况下,从 Postgres 15 开始,public 将不再能够在 public 模式中创建对象。

关于postgresql - 如何在 AWS RDS 的 Postgres 中创建只读用户?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56940582/

38 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com