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

Cara memberikan semua hak istimewa pada tampilan kepada pengguna yang sewenang-wenang

Alasannya adalah Anda memerlukan hak istimewa tambahan untuk mengakses tampilan atau tabel. Hak istimewa pada database tidak mencakup akses ke semua objek di dalamnya.

Berbeda dengan fungsi:EXECUTE hak istimewa diberikan kepada public secara default. Tapi fungsi dijalankan dengan hak istimewa pengguna saat ini. Anda mungkin tertarik dengan SECURITY DEFINER pengubah untuk CREATE FUNCTION . Tetapi biasanya cukup dengan memberikan SELECT pada tabel yang terlibat.

Per dokumentasi tentang hak istimewa default:

Bergantung pada jenis objek, hak istimewa default awal mungkin termasuk memberikan beberapa hak istimewa kepada PUBLIC . Standarnya adalah tidak ada akses publik untuk tabel, kolom, skema, dan ruang tabel; CONNECT hak istimewa dan TEMP hak istimewa pembuatan tabel untuk database; EXECUTE hak istimewa untuk fungsi; dan USAGE hak istimewa untuk bahasa.

Anda mungkin tertarik dengan perintah DDL ini (membutuhkan Postgres 9.0 atau lebih baru):

GRANT SELECT ON ALL TABLES IN SCHEMA public TO myuser;

Saat terhubung ke database yang bersangkutan, tentu saja (lihat komentar @marcel di bawah), dan sebagai pengguna dengan hak istimewa yang memadai. Anda mungkin juga tertarik dengan pengaturan DEFAULT PRIVILEGES :

  • Berikan semua pada skema tertentu di db ke peran grup di PostgreSQL

Jawaban yang lebih mendetail tentang cara mengelola hak istimewa:

  • Bagaimana cara mengelola HAK ISTIMEWA DEFAULT untuk PENGGUNA pada DATABASE vs SCHEMA?

pgAdmin memiliki fitur untuk operasi massal yang lebih canggih:

Atau Anda dapat menanyakan katalog sistem untuk membuat pernyataan DDL untuk pemberian/pencabutan massal ...




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Postgres Ubah Integer Kolom ke Boolean

  2. PostgreSQL:antara dengan datetime

  3. Perbedaan Rails/Postgresql SQL dengan Tanggal

  4. connection.select_value hanya mengembalikan string di postgres dengan permata pg

  5. Oracle setara dengan Postgres 'DISTINCT ON?