PostgreSQL
 sql >> база данни >  >> RDS >> PostgreSQL

Защо защитата на ниво ред не е активирана за изгледи на Postgres?

Основно защото не беше възможно да се промени със задна дата как работят изгледите. Бих искал да мога да поддържам SECURITY INVOKER (или еквивалент) за изгледи, но доколкото знам в момента не съществува такава функция.

Можете да филтрирате достъпа до самия изглед със сигурност на реда нормално.

Таблиците, достъпни от изгледа, също ще имат приложени правила за сигурност на редовете. Те обаче ще видят current_user като създател на изглед защото изгледите имат достъп до таблици (и други изгледи) с правата на потребителя, който е създал/притежава изгледа.

Може би си струва да повдигнете това на pgsql-hackers, ако желаете да се намесите и да помогнете с разработването на функцията, от която се нуждаете, или pgsql-general в противен случай?

Това каза, докато разглежда таблиците за достъп като създаващ потребител и променя current_user съответно, те не ви пречат да използвате персонализирани GUC, session_user , или друга контекстуална информация в правилата за сигурност на реда. Можете да използвате защита на редове с изгледи, но не (полезно) за филтриране въз основа на 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. Как да добавите автоматично увеличаващ се първичен ключ към съществуваща таблица в PostgreSQL?

  2. Не може да се изтрие база данни

  3. Pl/pgSQL няма параметър $1 в оператора EXECUTE

  4. Има ли удар в производителността при използване на десетични типове данни (MySQL / Postgres)

  5. Sequelize hasMany, belongsTo или и двете?