我尝试运行简单的SQL命令:

select * from site_adzone;

我得到了这个错误

错误:关系site_adzone的权限被拒绝

这里有什么问题呢?

我也试着为其他表做选择,得到了同样的问题。我也试着这样做:

GRANT ALL PRIVILEGES ON DATABASE jerry to tom;

但我收到了控制台的回复

警告:没有特权授予“jerry”

有人知道是哪里出了问题吗?


当前回答

由于您正在寻找选择权限,我建议您只授予选择权限,而不是所有权限。你可以这样做:

GRANT SELECT ON <table> TO <role>;

其他回答

第一步也是最重要的一步是连接到你的数据库:

psql -d yourDBName

第二步,授予特权

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO userName;

首先连接到正确的数据库,然后运行:

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jerry;

我遇到这个切换用户到另一个用户,也需要有相同的权利,我一直得到错误:“必须是关系xx的所有者”

修复是简单地把所有的权利从老用户给新用户:

将<老用户>授予<新用户>;

在所有表上发布Ron E授予特权的答案,因为它可能对其他人有用。

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA public TO jerry;

由于您正在寻找选择权限,我建议您只授予选择权限,而不是所有权限。你可以这样做:

GRANT SELECT ON <table> TO <role>;