V podstatě proto, že nebylo možné zpětně změnit způsob fungování pohledů. Chtěl bych být schopen podporovat SECURITY INVOKER
(nebo ekvivalentní) pro zobrazení, ale pokud vím, žádná taková funkce v současnosti neexistuje.
Přístup k samotnému pohledu můžete normálně filtrovat pomocí zabezpečení řádků.
Tabulky, ke kterým zobrazení přistupuje, budou mít také svá pravidla zabezpečení řádků. Uvidí však current_user
jako tvůrce zobrazení protože pohledy přistupují k tabulkám (a dalším pohledům) s právy uživatele, který pohled vytvořil/vlastní.
Možná by stálo za to upozornit na pgsql-hackery, pokud jste ochotni zasáhnout a pomoci s vývojem funkce, kterou potřebujete, nebo jinak pgsql-general?
To znamená, že zatímco zobrazuje přístupové tabulky jako vytvářejícího uživatele a změňte current_user
v souladu s tím vám nebrání v používání vlastních GUC, session_user
nebo jiné kontextové informace v zásadách zabezpečení řádků. Zabezpečení řádků můžete použít se zobrazeními, ale ne (užitečné) k filtrování na základě current_user
.