我正在尝试在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;
答案 0 :(得分:1)
您缺少一项权限:
REVOKE TEMPORARY ON DATABASE {dbname} FROM PUBLIC;
默认情况下,允许每个人自动所属的特殊角色PUBLIC
创建临时表。