Einzelne Experten-Validierung von Spalten

Hallo an Alle,

meine Aufgabe ist es eine DB aufzubauen in der validierte und unvalidierte Daten vorgehalten werden sollen. Unvalidierte Daten sollen in unserem Institut von Experten beurteilt werden und dann für die restlichen Mitarbeiter freigegeben werden. Die Daten können in ganzen Tabellen als auch in einzelnen Spalten validiert werden.
Wie ist dieses Problem am besten zu lösen, da pgsql keine Rechtevergabe auf Spaltenbasis kennt?
Ich habe schon von Views gehört. Schient mir aber auch in einem kompletten Chaos zu enden wenn man von jeder Tabelle noch einen View vorhält.
Mein Vorschlag wäre zwei Schemas anzulegen (validiert, unvalidiert) und ggf. einzelne Spalten über “Create Table as” Funktionen in das “validierte” Schema zu kopieren und dort entsprechende Rechte zu setzen.
Eure Meinungen?

PS: Ubuntu Dapper, Postgre 8.1 mit PostGIS 1.16
Die meisten Daten sind räumlich, sollte hier aber keinen Unterschied machen.


Vielen Dank im Voraus,
Christian

Das mit dem Schema ist schon mal ned so schlecht, aber was hast Du gegen VIEWS?

Du kannst doch, wenn table foo die Spalten a,b und c hat und nur a und c validiert sind, ein CREATE VIEW validiert.foo AS SELECT a, NULL, c FROM unvalidiert.foo; machen und die Rechte passend setzen. Das spart Speicher.
Und ist morgen noch Spalte b validiert, dann DROP VIEW validiert.foo und als select a,b,c neu erstellt, fertig.


Andreas

Danke für die schnelle Antwort.
Ich werds einfach mal ausprobieren müssen was sich bewährt und praktikabel ist. Es könnten eben sehr viele Tabellen werden und damit steigt auch die Anzahl der Views.

Christian

Euer Problem ist halt, das ihr Sachen mit SQL einschränken wollt, die man normal nur sporadisch ändert. Zugriffsrechte sollen für die Daten IN den Tabellen gelten und werden so auch genutzt. Ihr wollt jedoch Rechte AUF die Tabellen und Spalten vergeben. Das ist ein anderer Ansatz.

Neben dem, was ads sagte:

Wo genau siehst Du den Nachteil, VIEWS anzulegen, gegenüber Deiner Idee, Tabellen zu kopieren? Ich sehe zumindest den Vorteil, Speicherplatz zu sparen…


Andreas