从角色 postgres 撤销数据库上的临时文件

Revoke temp on database from role postgres

我正在尝试在 PostgreSQL 中创建一个只读用户,我已经这样做了,唯一需要注意的是我的新只读用户能够创建临时表。如何??为什么??

我特地运行:

CREATE ROLE read_access LOGIN;

REVOKE CREATE ON SCHEMA public FROM public;

GRANT USAGE ON SCHEMA {schema_name} TO read_access;

GRANT SELECT ON ALL TABLES IN SCHEMA {schema_name} TO read_access;

ALTER DEFAULT PRIVILEGES IN SCHEMA {schema_name}
   GRANT SELECT ON TABLES TO read_access;

您缺少一项权限:

REVOKE TEMPORARY ON DATABASE {dbname} FROM PUBLIC;

默认情况下,允许每个人自动属于的特殊角色 PUBLIC 创建临时表。