phpbar.de logo

Mailinglisten-Archive

RE: Berechtigungen
Archiv Mailingliste mysql-de

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RE: Berechtigungen



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


Home | Main Index | Thread Index

php::bar PHP Wiki   -   Listenarchive