[英]postgres database : Insufficient privilege, permission denied for relation table
[英]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.