You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL创建仅能查询指定视图、无法访问底层表的只读用户

实现仅能查询指定视图的PostgreSQL用户

没问题,我来帮你一步步完成这个需求——创建一个只能查询rv_system_event视图、完全无法操作底层system_event表的用户view_reader。以下是具体操作步骤:

1. 创建用户view_reader

首先创建带登录权限的用户,记得把示例密码替换成你自己的安全密码:

CREATE USER view_reader WITH PASSWORD 'your_strong_password_here';

2. 授予数据库连接权限

用户需要先获得连接payloads数据库的权限,否则连库都进不去:

GRANT CONNECT ON DATABASE payloads TO view_reader;

3. 授予Schema使用权限

因为视图在payloads schema下,用户必须拥有该schema的使用权限才能访问里面的视图:

GRANT USAGE ON SCHEMA payloads TO view_reader;

4. 授予视图的查询权限

这是核心操作,只给用户rv_system_event视图的SELECT权限:

GRANT SELECT ON payloads.rv_system_event TO view_reader;

额外说明:确保用户无底层表权限

默认情况下,新建用户不会拥有system_event表的任何权限(读、写都没有),所以不需要额外操作。如果之前该用户意外继承了相关权限,可以执行以下语句彻底收回:

REVOKE ALL ON payloads.system_event FROM view_reader;

验证权限是否生效

你可以用view_reader账号登录数据库,执行以下命令验证效果:

-- 正常查询视图(应该返回结果)
SELECT * FROM payloads.rv_system_event;

-- 尝试查询底层表(应该报错:权限不足)
SELECT * FROM payloads.system_event;

-- 尝试写入底层表(同样报错:权限不足)
INSERT INTO payloads.system_event VALUES (...);

内容的提问来源于stack exchange,提问作者Varun Verma

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 03:49:10