sql >> Databáze >  >> RDS >> PostgreSQL

Proč není pro zobrazení Postgres povoleno zabezpečení na úrovni řádků?

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 .



  1. Strategie pro řešení neustále se měnících požadavků na schémata MySQL?

  2. SUBSTR a INSTR SQL Oracle

  3. PHP:Iterujte přes více polí a sestavte SQL INSERT dotaz

  4. Django:duplicitní hodnota klíče porušuje jedinečné omezení