sql >> Database >  >> RDS >> PostgreSQL

Waarom is beveiliging op rijniveau niet ingeschakeld voor Postgres-weergaven?

Eigenlijk omdat het niet mogelijk was om met terugwerkende kracht de werking van weergaven te wijzigen. Ik wil graag SECURITY INVOKER . kunnen ondersteunen (of equivalent) voor weergaven, maar voor zover ik weet bestaat een dergelijke functie momenteel niet.

U kunt de toegang tot de weergave zelf met rijbeveiliging normaal filteren.

Op de tabellen die door de weergave worden geopend, worden ook hun rijbeveiligingsregels toegepast. Ze zien echter de current_user als de viewer omdat weergaven toegang krijgen tot tabellen (en andere weergaven) met de rechten van de gebruiker die de weergave heeft gemaakt/bezit.

Misschien is het de moeite waard om dit op pgsql-hackers te melden als je bereid bent om in te grijpen en te helpen met de ontwikkeling van de functie die je nodig hebt, of anders pgsql-algemeen?

Dat gezegd hebbende, terwijl toegangstabellen worden bekeken als de creërende gebruiker en current_user dienovereenkomstig voorkomen ze niet dat u aangepaste GUC's gebruikt, de session_user , of andere contextuele informatie in rijbeveiligingsbeleid. U kunt rijbeveiliging gebruiken met weergaven, alleen niet (nuttig) om te filteren op basis van current_user .



  1. Mysql-slot leest een enkele rij voor innodb

  2. Hoe een lokale MySQL-database te implementeren in Heroku

  3. PostgreSQL verbinden met R

  4. Hoe Oracle Cloud Instance te verbinden met Oracle Cloud Shell?