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

Mengapa keamanan tingkat baris tidak diaktifkan untuk tampilan Postgres?

Pada dasarnya karena tidak mungkin mengubah cara kerja tampilan secara surut. Saya ingin dapat mendukung SECURITY INVOKER (atau setara) untuk tampilan tetapi sejauh yang saya tahu tidak ada fitur seperti itu saat ini.

Anda dapat memfilter akses ke tampilan itu sendiri dengan keamanan baris secara normal.

Tabel yang diakses oleh tampilan juga akan menerapkan aturan keamanan barisnya. Namun, mereka akan melihat current_user sebagai pembuat tampilan karena tampilan mengakses tabel (dan tampilan lainnya) dengan hak pengguna yang membuat/memiliki tampilan tersebut.

Mungkin ada baiknya mengangkat ini pada pgsql-hackers jika Anda bersedia untuk masuk dan membantu pengembangan fitur yang Anda butuhkan, atau pgsql-general sebaliknya?

Yang mengatakan, sementara melihat tabel akses sebagai pengguna yang membuat dan mengubah current_user karenanya, mereka tidak mencegah Anda menggunakan GUC khusus, session_user , atau informasi kontekstual lainnya dalam kebijakan keamanan baris. Anda dapat menggunakan keamanan baris dengan tampilan, hanya saja tidak (berguna) untuk memfilter berdasarkan current_user .



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Operator PostgreSQL IN dengan kinerja buruk subquery

  2. PostgreSQL Upsert membedakan baris yang disisipkan dan diperbarui menggunakan kolom sistem XMIN, XMAX, dan lainnya

  3. Tidak dapat memulai postgresql.service?

  4. Postgres mengembalikan [null] alih-alih [] untuk array_agg dari tabel gabungan

  5. simpan string dengan panjang sewenang-wenang di Postgresql