PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Warum ist die Sicherheit auf Zeilenebene für Postgres-Ansichten nicht aktiviert?

Grundsätzlich, weil es nicht möglich war, die Funktionsweise von Ansichten nachträglich zu ändern. Ich möchte SECURITY INVOKER unterstützen können (oder gleichwertig) für Ansichten, aber soweit ich weiß, existiert derzeit keine solche Funktion.

Sie können den Zugriff auf die Ansicht selbst normalerweise mit Zeilensicherheit filtern.

Auf die Tabellen, auf die die Ansicht zugreift, werden auch ihre Zeilensicherheitsregeln angewendet. Sie sehen jedoch den current_user als Ersteller der Ansicht weil Ansichten auf Tabellen (und andere Ansichten) mit den Rechten des Benutzers zugreifen, der die Ansicht erstellt/besitzt.

Vielleicht lohnt es sich, dies bei pgsql-hackers anzusprechen, wenn Sie bereit sind, einzugreifen und bei der Entwicklung der benötigten Funktion zu helfen, oder andernfalls bei pgsql-general?

Das heißt, während Ansichten auf Tabellen als erstellender Benutzer zugreifen und current_user ändern Dementsprechend hindern sie Sie nicht daran, benutzerdefinierte GUCs, den session_user, zu verwenden , oder andere Kontextinformationen in Zeilensicherheitsrichtlinien. Sie können die Zeilensicherheit mit Ansichten verwenden, nur nicht (nützlich), um basierend auf current_user zu filtern .