PostgREST教程操作后authenticator用户查询api.todos提示schema api权限不足
PostgREST教程schema权限报错解决方案
ERROR: permission denied for schema api 报错的核心是查询用的角色缺少api schema及内部表的访问权限,按以下步骤操作即可解决:
- 执行授权语句(必须用超级用户或
apischema的创建用户执行),给教程中用到的web_anon角色开放schema使用权限和表查询权限:
-- 授予schema访问权限 GRANT USAGE ON SCHEMA api TO web_anon; -- 授予todos表查询权限,需要增删改权限可将SELECT替换为INSERT/UPDATE/DELETE或者ALL GRANT SELECT ON api.todos TO web_anon;
- 如果你是直接以
authenticator用户登录数据库测试查询,需要先切换到web_anon角色再执行查询语句:
SET ROLE web_anon; SELECT * FROM api.todos;
如果需要直接用authenticator用户查询,额外给它授予对应权限即可:
GRANT USAGE ON SCHEMA api TO authenticator; GRANT SELECT ON api.todos TO authenticator;
- 若你开启了
api.todos表的行级安全(RLS),需要额外创建访问策略:
CREATE POLICY "允许web_anon查询todos" ON api.todos FOR SELECT TO web_anon USING (true);
内容的提问来源于stack exchange,提问作者doekman
相关产品推荐
相关产品推荐

