Unvollständige Informationen aus information_schema.view_usage_columns

Allgemeines zu PostgreSQL.
Antworten
borke02
Neuer Benutzer
Beiträge: 1
Registriert: Mi 3. Aug 2016, 09:29

Unvollständige Informationen aus information_schema.view_usage_columns

Beitrag von borke02 » Mi 3. Aug 2016, 10:03

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

Antworten