Hallo Leute,
Ich bräuchte die Benutzer Rechte auf eine View.
Dazu habe ich mir folgendes Select Statement geschrieben:
SELECT relacl
FROM pg_class a
,pg_namespace b
WHERE a.relkind = 'v'
AND a.relname = 'v_testview'
AND a.relnamespace = b.oid
AND b.nspname = 'test_schema';
Das relacl ist aus pg_class und ist vom Type aclitem[]. Also ein Array, wenn ich das richtig verstehe.
Wenn ich diese Abfrage im pgAdmin laufen lassen, bekomme ich ein Ergebnis in Form von:
“{nutzer=arwdxt/nutzer,internet=r/nutzer,nutzer2=r/nutzer}”
Wenn ich aber nun die selbe Abfrage in meiner Anwendung (Java) laufen lasse, bekomme ich:
ERROR: could not identify an ordering operator for type aclitem[]
Kann man das aclitem[] Array in einen String carsten, damit ich das selbe Ergebnis bekomme wie vom pgAdmin?
Gibt es noch eine Möglichkeit an die Rechte heranzukommen, außer mit der select Abfrage die ich geschrieben habe?
Eine Einschränkung habe ich noch. Ich darf keine Funktionen verwenden, da diese Abfrage auf eine Kundendatenbank losgelassen wird und dort die Funktion nicht vorhanden ist.
Gruß shinchan 
Du willst aus einem array ein string machen. Array zu string, array_to_string(). Einfach, oder?
Parameter siehe Doku.
Eine Einschränkung habe ich noch. Ich darf keine Funktionen verwenden, da diese Abfrage auf eine Kundendatenbank losgelassen wird und dort die Funktion nicht vorhanden ist.
Gruß shinchan >
>
Das ist eine Funktion, die PG von Haus aus hat. Ich beweifle, daß die Funktion bei Deiner Kundendatenbank nicht vorhanden ist.
Andreas
Hallo Andreas,
danke erstmal für die schnelle Antwort.
Die PG Funktionen darf ich natürlich benutzen, da hat man mich wohl etwas falsch verstanden 
Ok. Habe das jetzt getestet
Abfrage:
SELECT array_to_string(ARRAY[relacl], ',')
FROM pg_class a
,pg_namespace b
where a.relkind = 'v'
and a.relname = 'v_testview'
and a.relnamespace = b.oid
and b.nspname = 'test_schema'
Das Ergebnis im pgAdmin:
nutzer=arwdxt/nutzer,internet=r/nutzer,nutze r2=r/nutzer
Das sieht schon mal besser aus
… die geschweiften Klammern sind weg.
Selbe Abfrage in meinem Programm:
java.sql.SQLException: ERROR: could not identify an ordering operator for type aclitem[]
grml 
Noch Ideen?
Gruß
shinchan
Omg, ich habe meinen Fehler gefunden.
Mit array_to_string funktioniert es wunderbar.
Ich hatte noch einen anderen Fehler im Programm, der diese Fehlermeldung brachte.
Sry für den Stress, danke 
Gruß shinchan