database - 关系 <table> 的 Postgres 权限被拒绝

标签 database postgresql

我正在尝试学习 Postgres,我制作了两个基本表格,但我无法将它们连接在一起。

这是我的关系列表:

 Schema |     Name     |   Type   |  Owner
--------+--------------+----------+----------
 public | login        | table    | postgres
 public | login_id_seq | sequence | postgres
 public | users        | table    | test
(3 rows)

当我使用命令时

SELECT * FROM users JOIN login ON users.name = login.name;

我明白了

ERROR: permission denied for relation login

我不知道该做什么或我做错了什么。

最佳答案

您应该向用户test 授予SELECT 权限:

GRANT SELECT ON login TO test;

如果可能允许 test 修改 login,您还应该授予其他权限:

GRANT SELECT, INSERT, UPDATE, DELETE ON login TO test;

您应该以数据库所有者或用户 postgres 的身份执行这些语句。一般来说,你可以使用

psql -Upostgres -dtest

如果您在运行 Postgres 服务器的同一台机器上运行此命令。

您还可以将 login 的所有权更改为 test:

ALTER TABLE login OWNER TO test;
ALTER SEQUENCE login_id_seq OWNER TO test;

但也必须以 postgres 用户身份执行。

编辑:您可以尝试更改用户

SET ROLE 'postgres';

根据@lat long的建议。

关于database - 关系 <table> 的 Postgres 权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49313595/

相关文章:

php - 暂时禁用 MySQL 连接 session 与 PHP PDO 的写入(插入、更新等)?

php - 如何传递 where DateCreated > DATE_SUB( NOW( ) , INTERVAL 10 DAY );健康)状况?

javascript - 如何使用 php 将动态文本框值插入到同一 ID 上的数据库表中?

javascript - 在 where 条件下使用 "续行包装列

postgresql - 臭名昭著的 java.sql.SQLException : No suitable driver found

mysql - 将页脚行作为一组行的标题行

PHP MYSQL XML 错误

javascript - 如何获取JSX输入字段的值到Javascript日期对象,然后将其插入mysql YYYY-MM-DD格式?

Postgresql 窗口函数的数值精度错误

macos - 使用 MacPorts 在 Mac OS X 10.5 上安装 PostgreSQL 时出错