phpbar.de logo

Mailinglisten-Archive

Leserechte auf einzelne Spalten

Leserechte auf einzelne Spalten

Harald Weidner hweidner-lists at gmx.net
Mit Jan 21 01:26:53 CET 2009


Hallo,

>Bei einem meiner Versuche fehlt mir jedoch noch die Erklärung, warum
>es nicht geht:
>GRANT SELECT ON db1.* TO user1
>    Jetzt kann der user1 alle Tabellen der db1 lesen
>REVOKE SELECT (spalte3) ON db1.tab1 FROM user1
>    Jetzt sollte user1 nur die saplte3 aus tab1 nicht mehr lesen können.
>    Das funktioniert aber nicht.

Dieses REVOKE versucht einen Eintrag aus einer ACL zu löschen, der aber
gar nicht gesetzt wurde. Es bewirkt also nichs.

>    Ich muss statt dessen für jede tab die Rechte einzeln setzen,
>    dann geht's.

Richtig. Du kannst hier für alle Tabellen außer tab1 tabellenspezifische
Rechte verwenden, nur für tab1 werden feldspezifische benötigt.

>Habt ihr eine Erklärung?

Die schema-, tabellen- und feldbasierten Rechte sind als ODER
Verknüpfung zu interpretieren. Das heisst, ein Lesezugriff auf ein
Feld ist erlaubt, wenn es
- ein globales ODER
- ein schemaspezifisches ODER
- ein tabellenspezifisches ODER
- ein feldspezifisches
SELECT Recht gibt. Ansonsten ist der Zugriff verboten.

Im obigen Beispiel gibt es ein schemaspezifisches Recht, also ist
der Zugriff erlaubt und nach weiteren ACLs wird gar nicht mehr
gesucht.

Gruß, Harald
_______________________________________________
Allgemeine Infos zur Liste: http://www.4t2.com/mysql/
Verwaltung: https://lists.4t2.com/cgi-bin/mailman/listinfo/mysql-de

php::bar PHP Wiki   -   Listenarchive