sql >> Databasteknik >  >> RDS >> PostgreSQL

Varför är inte säkerhet på radnivå aktiverad för Postgres-vyer?

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 .



  1. Hur jämför jag två rader från samma tabell (SQL-server)?

  2. SQL-fel vid paginering

  3. Hur kan jag aktivera MySQL:s långsamma frågelogg utan att starta om MySQL?

  4. Hur registrerar jag System.DirectoryServices för användning i SQL CLR-användarfunktioner?