Mailinglisten-Archive |
Eike Lange schrieb am Mi, 1999-07-07 09:34:06 +0200: > Soweit ich weiss gibts da keine Möglichkeit, eine einzelne Tabelle > auch nur einigermassen sicher für einen einzelnen Benutzer zu machen. > Leider bietet MySQL nur an, eine ganze Datenbank entsprechend zu sichern > (durch Passwörter halt und Hosts, die auf die Datenbank zugreifen dürfen). Seit der MySQL-Version 3.22.11 (wenn ich die Changes-Kapitel im Manual eben richtig gelesen habe) gibt es den GRANT-Befehl und mit ihm die Möglichkeit, Rechte gezielt für einzelne Tabellen und sogar Spalten zu vergeben. Siehe Manual Kapitel "7.25 GRANT and REVOKE syntax" und auch das ganze Kapitel "6 The MySQL access privilege system". Beispiel: Du hast eine MySQL-database names "musikdb", in dieser mehrere Tabellen und nur auf die Tabelle "cd" soll der DB-user "freunde" rein lesend zugreifen können: GRANT SELECT ON musikdb.cd TO freunde IDENTIFIED BY 'geheim'; Diese Anweisung legt auf einen Schlag den DB-user "freunde" neu an, falls er noch nicht existierte, gibt ihm das DB-password PASSWORD('geheim') und verändert die Verwaltungstabellen mysql.db, mysql.tables_priv und mysql_columns_priv passend. Seit es GRANT/REVOKE gibt, verändere ich die Verwaltungstabellen kaum noch von Hand (warum auch? :-). Was ich allerdings noch schmerzlich vermisse, ist eine Möglichkeit, die Zugriffsrechte eines DB-Users (oder die auf eine Datenbank etc.) tabellarisch im Überblick zu bekommen. Oder gibt's diese Möglichkeit? Ciao, Martin -- Martin Ramsch <m.ramsch_(at)_computer.org> <URL: http://home.pages.de/~ramsch/ > PGP KeyID=0xE8EF4F75 FiPr=52 44 5E F3 B0 B1 38 26 E4 EC 80 58 7B 31 3A D7
php::bar PHP Wiki - Listenarchive