Mailinglisten-Archive |
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