为什么我在 pgAdmin 4 上收到架构 public 的权限被拒绝错误?

问题描述

我正在尝试在 pgAdmin 4 中查看来自 AACT 数据库的原始数据。我使用的是 Mac 计算机。当我尝试查看“complete_oncology”表中的前 100 行时,出现以下错误

ERROR: permission denied for schema public
LINE 1: SELECT * FROM public.complete_oncology
                      ^
sql state: 42501
Character: 15

我的权限是否不足?如果是,我如何授予自己查看此表的权限?我能够在 AACT 数据库中看到来自不同模式的其他表。我读过一些用户建议使用以下内容授予自己权限,但没有运气:

GRANT SELECT ON complete_oncology TO PUBLIC

这只是一个错误

ERROR:  relation "complete_oncology" does not exist
sql state: 42P01

解决方法

如果您收到 public.complete_oncology 的“权限被拒绝”,但 oncology 的“关系不存在”,那只能意味着一件事:您没有 USAGE public 架构的权限。

获取要运行的架构的所有者

GRANT USAGE ON SCHEMA public TO your_user;

然后你应该可以看到表格了。如果您仍然缺乏对表本身的权限,请让所有者也授予您对表的 SELECT 权限。