【问题标题】:PostgreSQL, ReadOnly User and PgAdminPostgreSQL、只读用户和 PgAdmin
【发布时间】:2021-01-05 11:23:16
【问题描述】:
有人可以帮忙解决下面的疑问吗?
我在 PostgreSQL 中有一个数据库,其中一些表是由管理员用户创建的。然后我创建了一个视图来连接一些信息。我更喜欢使用 PgAdmin 来处理 PostgreSQL,因为我不熟悉用于管理服务器的 SQL 语法......现在:
非常感谢!!!
【问题讨论】:
标签:
postgresql
privileges
pgadmin
【解决方案1】:
首先,您需要在public 架构上从每个人那里获得REVOKE USAGE 并将其授予其他用户:
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;