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

Postgres只读用户访问新建视图时提示Permission Denied问题求助

PostgreSQL只读用户无法访问新建视图的解决方案
  • 检查并授予模式USAGE权限
    只读用户可能缺少视图所在模式的访问权限,执行以下语句:

    GRANT USAGE ON SCHEMA public TO "readonlyuser@test_XXXXXX";
    
  • 确认视图依赖对象的权限
    如果视图引用了其他表、视图或函数,需确保只读用户对这些依赖对象拥有SELECT权限。若无法逐一授权,可将视图设置为SECURITY DEFINER(注意安全风险,仅在必要时使用):

    CREATE OR REPLACE VIEW public."View_Name"
    WITH (SECURITY DEFINER)
    AS
    -- 替换为你的视图查询逻辑
    SELECT column1, column2 FROM public.target_table;
    
    -- 限制安全定义者的搜索路径,避免权限泄露
    ALTER VIEW public."View_Name" SET search_path = public;
    
  • 验证权限配置
    使用管理员账号查询视图的权限明细,确认授权是否生效:

    SELECT grantee, privilege_type
    FROM information_schema.table_privileges
    WHERE table_name = 'View_Name' AND table_schema = 'public';
    

    结果中需包含readonly用户的SELECT权限记录。

  • 确认用户身份与搜索路径
    让只读用户执行以下语句,排查身份或路径问题:

    SELECT current_user;
    SHOW search_path;
    

    确保当前用户为readonlyuser@test_XXXXXX,且search_path包含public。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.17 19:02:35