我正在尝试学习 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/