Auslesen ob ich DB anlegen darf?
Andi
- datenbank
Hallo,
ich schreibe gerade ein Installationsscript.
Jetzt würde ich gerne eine Funktion einbauen mit der man herausbekommt ob der Anwender selbständig Datenbanken in ner MySQL DB anlegen darf.
Gibts da ne Möglichkeint mit PHP/SQL ???
danke,
MfG Andi!
Klar:
if(mysql_query(BEFEHL)){
echo("Du darfst Datenbanken anlegen");
}
else{
echo("Du darfst leider <strong>keine</strong> Datenbanken anlegen");
}
mysql_query() gibt true zurück, wenn alles erfolgreich lief, false, wenn es nicht erfolgreich lief. Auf den Rückgabewert kannst du per if reagieren.
PS: Benutze bitte einen einfachen Befehl, zum Bleistift einen, der nur sucht oder so etwas...
Hello,
SQL-Statement:
"show grants for $user";
in der SQL-Konsole:
show grants for "tschmieder"@"192.168.1.3";
ergibt z.B:
GRANT ALL PRIVILEGES ON *.* TO 'tschmieder'@'192.168.1.3' IDENTIFIED BY PASSWORD '535fb75e787a8227' WITH GRANT OPTION
----------
oder
show grants for "contenido"@"localhost";
ergibt:
GRANT USAGE ON *.* TO 'contenido'@'localhost' IDENTIFIED BY PASSWORD '012081115c2d71e3'
GRANT ALL PRIVILEGES ON contenido
.* TO 'contenido'@'localhost' WITH GRANT OPTION
Das sind dann tatsächlich zwei Einträge, da ich die Rechte des Users 'contenido@localhost'
auf die Verwendung der entsprechenden DB eingeschränkt habe.
Nun musst Du diesen GRANT-String erst interpretieren.
Wenn Du direkten Lesezugriff auf die mysql-Datenbank hast, kannst Du natürlich auch SELECTs auf die Tabellen absetzen, musst die Rechte dann aber trotzdem nach dem mysSQL-eigenen Algorithmus "berechnen". Es reicht also nicht, nur eine einzelne Tabelle (user) zu befragen.
siehe auch:
http://dev.mysql.com/doc/mysql/en/GRANT.html
Rechtesystem:
http://dev.mysql.com/doc/mysql/de/Privileges.html, zum Einlesen auf Deutsch
http://dev.mysql.com/doc/mysql/en/Privileges.html, und dann besser auch hier gucken!
Harzliche Grüße aus http://www.annerschbarrich.de
Tom