PDA

View Full Version : Berechtigungen auf Index (SQL)



BDehmel
12-12-07, 09:37
Hallo zusammen,

ich habe mehrere Indexe zu einer Tabelle erstellt. Laut der Dokumentation "SQL at Work" von Howard F. Arner benutzt die AS400 diese automatisch durch den Optimizer, so dass man sich darum nicht kümmern muss.

Frage: Wie sieht das denn mit den Berechtigungen aus? Auf die Tabelle hat jeder durch einen GRANT ALL TO PUBLIC Zugriff. Wird der Index dann trotzdem benutzt, oder müssen die Berechtigungen darauf auch vergeben werden. Wie macht man dieses mit SQL? Über den Operation-Navigator bzw. in der AS400 selber kann man darauf Berechtigungen vergeben, ein GRANT funkioniert aber nicht.

Gruß Björn

B.Hauser
16-12-07, 14:36
Frage: Wie sieht das denn mit den Berechtigungen aus? Auf die Tabelle hat jeder durch einen GRANT ALL TO PUBLIC Zugriff. Wird der Index dann trotzdem benutzt, oder müssen die Berechtigungen darauf auch vergeben werden. Wie macht man dieses mit SQL? Über den Operation-Navigator bzw. in der AS400 selber kann man darauf Berechtigungen vergeben, ein GRANT funkioniert aber nicht.


Da ein Index in SQL nicht explizit angesprochen, sondern nur vom Optimizer verwendet werden kann, ist für die Verwendung eines Indices die Berechtigung für die Tabelle (bzw. physische Datei) ausschlaggebend. Es muss also keine zusätzliche Berechtigung vergeben oder entzogen werden.

GRANT/REVOKE INDEX ON TABLE vergibt oder entzieht einem Benutzer das Recht auf eine bestehende physische Datei oder Tabelle neue Indices anzulegen, nicht jedoch das Recht einen Index zu verwenden.

Werden Indices nicht verwendet, liegt es daran, dass der Optimizer die vorhandenen Zugriffswege nicht als optimal erachtet.

Birgitta