PostgreSQL ERROR: permission denied for relation users

Problem

ERROR: permission denied for relation users

Error ini biasanya terjadi karena user database tidak memiliki hak akses (privileges) yang cukup terhadap tabel atau schema di PostgreSQL.

Solution

1. Menampilkan Nama Schema

Pertama, hubungkan ke database PostgreSQL Anda, lalu jalankan perintah berikut untuk melihat daftar tabel beserta schema-nya:

\dt

Dari output tersebut, Anda dapat mengetahui nama schema yang digunakan (biasanya public, tetapi bisa berbeda tergantung konfigurasi).


2. Memberikan Hak Akses (Grant Privileges)

Setelah mengetahui nama schema, jalankan perintah berikut sebagai user dengan hak admin (misalnya postgres):

GRANT ALL PRIVILEGES ON DATABASE name_db TO remote_user;

GRANT ALL PRIVILEGES ON ALL TABLES IN SCHEMA <schema_name> TO <username>;

GRANT ALL PRIVILEGES ON ALL SEQUENCES IN SCHEMA <schema_name> TO <username>;

Ganti:

  • name_db → dengan nama database Anda
  • <schema_name> → dengan nama schema (misalnya public)
  • <username> / remote_user → dengan user yang ingin diberi akses

Catatan Tambahan (Opsional – Best Practice)

Agar tabel baru otomatis memiliki akses yang sama di masa depan, jalankan juga:

ALTER DEFAULT PRIVILEGES IN SCHEMA <schema_name>
GRANT ALL ON TABLES TO <username>;

Kesimpulan

Error ini terjadi karena kurangnya hak akses pada schema atau tabel. Solusinya adalah:

  1. Cek schema menggunakan \dt
  2. Berikan privilege pada database, tables, dan sequences

Semoga membantu 👍


Komentar

Postingan populer dari blog ini

Cara restart / stop windows service (services.msc) dengan bat / cmd

Learning Haproxy Load Balancer with Podman and Go Backends

Konfigurasi ITNSA OpenVPN auth LDAP