首页 > 解决方案 > PostgreSQL、只读用户和 PgAdmin

问题描述

有人可以帮助解决下面的疑问吗?

我在 PostgreSQL 中有一个数据库,其中一些表是由管理员用户创建的。然后我创建了一个视图来连接一些信息。我更喜欢使用 PgAdmin 来处理 PostgreSQL,因为我不熟悉用于管理服务器的 SQL 语法......现在:

太感谢了!!!

标签: postgresqlprivilegespgadmin

解决方案


首先,您需要从每个人那里REVOKE USAGE获取public架构并将其授予其他用户:

REVOKE USAGE, CREATE ON SCHEMA public FROM PUBLIC;
GRANT USAGE, CREATE ON SCHEMA public TO ddl_user;
GRANT USAGE  ON SCHEMA public TO write_user;

现在在新模式中创建视图并允许新用户仅访问该模式和视图:

CREATE SCHEMA viewschema;
CREATE ROLE only_view LOGIN;
GRANT USAGE ON SCHEMA viewschema TO only_view;
ALTER ROLE only_view SET search_path = viewschema;
CREATE VIEW viewschema.myview AS SELECT ...;
GRANT SELECT ON viewschema.myview TO only_view;

推荐阅读