Hi,
ich bekomme nicht alle Informationen angezeigt, die ich aus der View information_schema.view_column_usage benötige.
Ich habe z.B. folgende Objekte
User admin und frank
schema_a mit table_aa und table_ab
schema_b mit table_ba
User admin ist Besitzer von schema_a und schema_b
User frank hat Usage Privileg auf schema_a und schema_b
User frank ist Besitzer von table_aa und table_ab
User admin ist Besitzer und table_ba
User Admin hat alle Rechte auf table_aa und table_ab
User frank hat select Recht auf table_ba
User frank erstellt eine View schema_a.list_info, die Tabellen und Spalten aus den Tabellen in schema_a und schema_b enthält (also per Join verknüpft). Wenn User frank information_schema.view_column_usage aufruft, sieht er nur die Tabellen und Spalten, bei denen er der Besitzer davon ist. Und wenn User admin information_schema.view_column_usage aufruft, sieht er nicht die Tabellen und Spalten, wo User frank der Besitzer ist.
In der View-Definition von information_schema.view_column_usage steht am Ende eine Bedingung, die wohl dafür verantwortlich ist: AND pg_has_role(t.relowner, ‘USAGE’::text). Ist das denn so richtig? Diese Bedingung gibt es auch in anderen Views, wodurch sie nicht immer brauchbar sind.
Viele Grüße
Frank