PhpMyAdmin Problem

Hannes

Registered User
Sorry, wenn ich diese Frage nocheinmal stelle, ich habe sie schon mal in einer ähnlichen Art hier im Forum gesehen, sie hat mir aber nicht geholfen. Ich habe schon gegooglet und mittlerweilen rausgefunden, dass es irgendetwas mit "GRANT" zu tun hat (denke ich :D , berichtigt mich wenn es falsch ist), ich weiss aber nicht was ich daran verändern muss.
Hier nocheinmal meine Frage:

Ich hab ein Problem mit MySQL und PhpMyAdmin. Wenn sich ein User einloggt, kann er alle anderen Datenbanken, die ihm nicht gehören auch sehen, er kann zwar nichts darin verändern oder verstellen, aber was muss ich ändern, dass er diese datenbanken auch nicht mehr sehen kann?

MfG
Hannes
 
In der "config.inc.php" von phpMyAdmin findest du folgende Zeile:

$cfg['Servers'][$i]['only_db'] = '';

Setze dort den namen der DB ein, die NUR angezeigt werden soll und schon verschwinden alle anderen :)
 
djrick said:
In der "config.inc.php" von phpMyAdmin findest du folgende Zeile:

$cfg['Servers'][$i]['only_db'] = '';

Setze dort den namen der DB ein, die NUR angezeigt werden soll und schon verschwinden alle anderen :)

öhm....wenn ich das jetzt richtig verstehe, sehen dann ja alle benutzer nur eine datenbank!?
Ich will aber, dass jeder benutzer nur seine eigene Datenbank sieht und nicht eine einzige für alle.
 
Hab jetzt noch was rausgefunden, wenn ich mich in PhpMyAdmin als root einlogge und auf "Rechte" gehe, dann steht folgendes dort:

Warning: Your privilege table structure seem to be older than this MySQL version! Please run the script mysql_fix_privilege_tables that should be included in your MySQL server distribution to solve this problem!

Wenn ich dann das Skript ausführe kommt folgendes:

mysql_fix_privilege_tables -uroot -pPASSWORT (natürlich hab ich meines verwendet)
This scripts updates the mysql.user, mysql.db, mysql.host and the
mysql.func tables to MySQL 3.22.14 and above.

This is needed if you want to use the new GRANT functions,
CREATE AGGREGATE FUNCTION or want to use the more secure passwords in 3.23

If you get 'Access denied' errors, you should run this script again
and give the MySQL root user password as an argument!
Converting all privilege tables to MyISAM format
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

If your tables are already up to date or partially up to date you will
get some warnings about 'Duplicated column name'. You can safely ignore these!
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

Creating Grant Alter and Index privileges if they don't exists
You can ignore any Duplicate column errors
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

Adding columns needed by GRANT .. REQUIRE (openssl)
You can ignore any Duplicate column errors
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

Creating the new table and column privilege tables
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
Changing name of columns_priv.Type -> columns_priv.Column_priv
You can ignore any Unknown column errors from this
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

Fixing the func table
You can ignore any Duplicate column errors
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

Adding new fields used by MySQL 4.0.2 to the privilege tables
You can ignore any Duplicate column errors
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)
ERROR 1045: Access denied for user: 'root@localhost' (Using password: YES)

Der Fehler bleibt aber trotzdem.

Das wir geupdatet haben stimmt. Wir haben den ganzen server von suse 8.1 auf 9.0 upgedatet, was wir auf dem 8.1 er für ne mysql version hatten, weiss ich leider nicht mehr. auf dem aktuellen ist PHP Version 4.3.9 und MySQL 4.0.15

MfG
Hannes
 
das problem mit den mysql_fix_privilege_tables

für die datei aus und hänge hinten dein pw (das aktuelle !!) ran
Code:
mysql_fix_privilege_tables --hierdeinpw

nun das problem mit den db`s
an dem problem hab ich auch ne weile gesessen als ich meinem eigenen webserver installiert habe XD

aber nachdem ich mal ein bissl auf meinem vserver gestöbert hatte
(bei dem gehts ja ^^)

ist ma folgendes aufgefallen:

die user selber benötigen nur das globale recht Grant
dannach gibbste den usern datenbankspezifiche rechte
(und unserem falle web1)
das recht sieht bei mir dann so aus
Code:
usr\_web1\_%
die \ müssen sein sonst geht das _ nicht ^^ am ende hab ich % als platzhalter verwendet dadurch hat der user jetzte die möglichkeiten neue datanbanken mit dem präfix "usr_web1_" zu erstellen und er sieht auch nur die datenbanken die das selbe präfix haben. andere datenbanken gehen nciht zu erstellen wegen fehlender authorisation (soll er ja auch nicht können :))
falls er garkeine db`s erstellen können soll musste einfach das datenbankspezifiche recht create weglassen :)

:)
 
Sorry, bin noch n Neuling in SQL usw...
kann ich diese rechte mit dem usr\_web1\_% auch über PhpMyAdmin setzten? oder muss ich mich über die shell einloggen und dort dann das eingeben? oder in irgendeiner config datei das verändern (wenn ja, in welcher?) ???
 
Last edited by a moderator:
Back
Top