簡體   English   中英

關系<table>的Postgres權限被拒絕

[英]Postgres permission denied for relation <table>

我正在努力學習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;

我明白了

錯誤:關系登錄的權限被拒絕

我不知道該做什么或做錯了什么。

您應該向用戶測試授予SELECT權限:

GRANT SELECT ON login TO test;

如果if可能允許測試修改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所建議的那樣

所以這就是我最終讓它發揮作用...我基本上只是進入了pgAdmin4的登錄屬性,找到了所有者並將其切換為測試並運行: SELECT * FROM users JOIN login ON users.name = login.name; 終於得到了我想要的東西。 令人驚訝的簡單修復。

“test”用戶無權登錄和使用相關表。 使用“postgres”用戶運行查詢:

SET ROLE 'postgres';

然后運行您的查詢。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM