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
.