PostgreSQL
 sql >> Teknologi Basis Data >  >> RDS >> PostgreSQL

KESALAHAN:izin ditolak untuk nama tabel relasi di Postgres saat mencoba SELECT sebagai pengguna hanya-baca

Berikut adalah solusi lengkap untuk PostgreSQL 9+, diperbarui baru-baru ini.

CREATE USER readonly  WITH ENCRYPTED PASSWORD 'readonly';
GRANT USAGE ON SCHEMA public to readonly;
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly;

-- repeat code below for each database:

GRANT CONNECT ON DATABASE foo to readonly;
\c foo
ALTER DEFAULT PRIVILEGES IN SCHEMA public GRANT SELECT ON TABLES TO readonly; --- this grants privileges on new tables generated in new database "foo"
GRANT USAGE ON SCHEMA public to readonly; 
GRANT SELECT ON ALL SEQUENCES IN SCHEMA public TO readonly;
GRANT SELECT ON ALL TABLES IN SCHEMA public TO readonly;

Terima kasih kepada https://jamie.curle.io/creating-a-read-only-user-in-postgres/ untuk beberapa aspek penting

Jika ada yang menemukan kode yang lebih pendek, dan lebih disukai yang dapat melakukan ini untuk semua database yang ada, pujian ekstra.



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Cara membuat pernyataan yang disiapkan postgres dinamis di PHP

  2. ORDER BY ... MENGGUNAKAN klausa di PostgreSQL

  3. Penerapan &Konfigurasi PostgreSQL dengan Wayang

  4. Pilih kolom dengan nama kolom tertentu di PostgreSQL

  5. Kemajuan dalam peningkatan online