Postgres 14 Windows环境下\z/\dp命令未正确显示权限信息求助
解决Windows下Postgres14 psql \z/\dp+无权限输出的问题
以下是排查和解决步骤:
确认当前连接的数据库与表所在位置
- 登录psql后,先切换到目标数据库:
\c your_target_db - 执行
\dt查看当前库下的表是否存在,如果表在非public模式,需指定模式查询权限:\z your_schema.* - 检查搜索路径是否包含目标模式:
SHOW search_path;,若缺少目标模式,可临时设置:SET search_path TO public, your_schema;
- 登录psql后,先切换到目标数据库:
验证psql与服务器版本一致性
- 在psql中执行
SELECT version();查看服务器版本 - 打开命令提示符执行
psql --version查看客户端版本 - 若版本不一致,卸载旧版本PostgreSQL,或直接使用Postgres14安装目录下的psql(路径通常为
C:\Program Files\PostgreSQL\14\bin\psql.exe)
- 在psql中执行
绕过psql元命令,直接查询系统表
执行以下SQL语句直接从系统表读取权限信息,验证是否存在权限数据:SELECT n.nspname AS schema_name, c.relname AS table_name, pg_get_userbyid(c.relowner) AS table_owner, array_agg(pg_get_userbyid(acl.grantee) || '=' || acl.privilege_type) AS privileges FROM pg_catalog.pg_class c JOIN pg_catalog.pg_namespace n ON c.relnamespace = n.oid LEFT JOIN pg_catalog.pg_class_relacl(c.oid) acl ON true WHERE c.relkind = 'r' AND n.nspname NOT IN ('pg_catalog', 'information_schema') GROUP BY n.nspname, c.relname, c.relowner;如果该查询返回权限数据,说明是psql元命令的环境问题;若仍无结果,需检查数据库权限配置是否与Mac环境一致。
排查psql配置文件干扰
- 查看Windows用户目录下的
%APPDATA%\postgresql\psqlrc.conf,或当前工作目录的.psqlrc文件 - 临时重命名该配置文件,重启psql后再执行
\z命令,确认是否是自定义配置导致输出异常
- 查看Windows用户目录下的
内容的提问来源于stack exchange,提问作者Murthy Karra
相关产品推荐
相关产品推荐

