I grund och botten för att det inte var möjligt att retroaktivt ändra hur åsikter fungerar. Jag skulle vilja kunna stödja SECURITY INVOKER
(eller motsvarande) för åsikter, men så vitt jag vet finns ingen sådan funktion för närvarande.
Du kan filtrera åtkomsten till vyn själv med radsäkerhet normalt.
De tabeller som vyn kommer åt kommer också att tillämpa sina radsäkerhetsregler. De kommer dock att se current_user
som visningsskapare eftersom vyer har åtkomst till tabeller (och andra vyer) med rättigheterna för användaren som skapade/äger vyn.
Kanske skulle det vara värt att ta upp detta på pgsql-hackers om du är villig att gå in och hjälpa till med utvecklingen av den funktion du behöver, eller pgsql-general annars?
Som sagt, medan ser åtkomsttabeller som skapande användare och ändra current_user
följaktligen hindrar de dig inte från att använda anpassade GUC:er, session_user
, eller annan kontextuell information i radsäkerhetspolicyer. Du kan använda radsäkerhet med vyer, bara inte (användbart) för att filtrera baserat på current_user
.