Mailinglisten-Archive |
> > ich habe einen Webserver installiert und bekomme es einfach > nicht hin die Rechte für die Tabellen so zu setzen, dass ein > User mit dem phpMyAdmin wirklich *nur* seine eigene Datenbank > sehen und vor allem browsen und Tabellen ändern kann. > wenn du erreichen moechtest, dass abhaengig vom angegebenen Benutzernamen unterschiedliche Datenbanken/Tabellen mit phpMyAdmin angezeigt werden (und auch nur diese bearbeitet werden koennen) darfst du n i c h t das Authentikationssystem des Apache verwenden (also keine AuthName, require usw. Direktiven fuer das phpMyAdmin-Verzeichnis in der httpd.conf oder in einem lokalen .htaccess file). Stattdessen konfigurierst Du phpMyAdmin mit advanced authentication. Dazu brauchst du in MySQL einen Benutzer "Niemand" der nichts darf, ausser sich die mysql-Tabelle anschauen: shell> mysql -u root -p mysql> use mysql mysql> INSERT INTO user VALUES('localhost', 'Niemand', PASSWORD('nothing'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'); mysql> INSERT INTO db VALUES('localhost', 'mysql', 'Niemand', 'Y', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'); mysql> FLUSH PRIVILEGES; Diesen Benutzer traegst du jetzt in der config.ini.php3 ein, z. B. so: $cfgServers[1]['host'] = 'localhost'; $cfgServers[1]['port'] = ''; $cfgServers[1]['adv_auth'] = true; $cfgServers[1]['stduser'] = 'Niemand'; $cfgServers[1]['stdpass'] = 'nothing'; $cfgServers[1]['user'] = ''; $cfgServers[1]['password'] = ''; $cfgServers[1]['only_db'] = ''; $cfgServers[1]['verbose'] = ''; Von nun an sorgt phpMyAdmin fuer die Abfrage einer Benutzername/Kennwort-Kombination. Mit Hilfe des Benutzers Niemand prueft phpMyAdmin, welche Datenbanken dieser Benutzer berechtigt ist zu besichtigen/zu aendern etc. Dazu musst du natuerlich (entsprechend obigem Schema) auch weitere Benutzer einrichten. Der folgende Eintrag erstellt einen Benutzer Adressadmin der fuer die Datenbank adressen SELECT, INSERT, UPDATE und DELETE Privilegien hat. Auf andere Datenbanken hat Adressadmin keinen Zugriff. shell> mysql -u root -p mysql> use mysql mysql> INSERT INTO user VALUES('localhost', 'Adressadmin', PASSWORD('schubidu'), 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N', 'N'); mysql> INSERT INTO db VALUES('localhost', 'adressen', 'Adressadmin', 'Y', 'Y', 'Y', 'Y', 'N', 'N', 'N', 'N', 'N'); mysql> FLUSH PRIVILEGES; --- *** Abmelden von dieser Mailingliste funktioniert per E-Mail *** an mysql-de-request_(at)_lists.4t2.com mit Betreff/Subject: unsubscribe
php::bar PHP Wiki - Listenarchive