# PHPMyAdmin mit Passwort schützen...



## pascal007 (24. September 2005)

Hallo Forum

Ich habe mir mit Xampp einen kleinen Webserver eingerichtet (noch nicht online!). Zu dem Xampp-Paket gehört auch PHP und MySQL. Alles ist richtig installiert und funktioniert auch soweit, aber ich würde das 'PHPMyAdmin'-Interface (oder wie nennt man sowas?) mit einem Passwort schützen, aber es will einfach nicht funktionieren! Die Standardeinstellung ist ja: Benutzer: 'Root', kein Passwort. Sobald ich etwas von diesen zwei Dingen ändere, bekomme ich gleich folgende Fehlermeldung wenn ich das 'PHPMyAdmin'-Interface wieder aufrufen möchte: "#1045 - Access denied for user 'pascal007'@'localhost' (using password: YES)". Ich habe schon viele Möglichkeiten ausprobiert und das ganze Internet (so scheint es mir) durchforscht, aber nichts Brauchbares gefunden!

Also: wie kann ich mein 'PHPMyAdmin'-Interface mit einem Passwort schützen?

Ich hoffe ihr könnt mir helfen!

MfG Pascal007


----------



## Moan (24. September 2005)

Auszug aus der XAMPP readme



> 3) Der MySQL-Server startet ohne Passwort für MySQl-Administrator "root".
> Für eine Zugriff in PHP sähe das also aus:
> mysql_connect("localhost","root","");
> Ein Passwort für "root" könnt ihr über den mysqladmin in der Eingabforderung
> ...



Hoffe geholfen zu haben

Dani


----------



## pascal007 (25. September 2005)

Danke für deine Antwort! Ich habe jetzt folgendes gemacht: ich habe in der DOS-Konsole folgendes eingegeben: 'c:\programme\xampp\mysql\bin\mysqladmin -u root password geheim'

Genau so wie im Beispiel. Dann habe ich in der 'config.inc.php' die Zeilen wie folgt geändert:

 $cfg['Servers'][$i]['user'] = 'root'; // MySQL user
$cfg['Servers'][$i]['auth_type'] = 'http'; // HTTP Authentifzierung

(Muss ich das Passwort in der config.inc.php nicht auch ändern?).

Folglich müsste ich mich jetzt ja mit 'root' und 'geheim' beim .htaccess-Schutz einloggen können, aber es funz net! Was habe ich jetzt wieder falsch gemacht?

MfG Pascal007


----------



## Neurodeamon (26. September 2005)

Bei Windows stellt sich das manchmal etwas quer. Versuch mal ob es funktioniert, wenn Du Auth von 'http' zu 'config'  änderst und das Passwort in die config.inc.php einträgst. Wenn geht ist die Passwortänderung ohne Probleme verlaufen, nur will das http-Auth mit Windows nicht mitmachen


----------



## pascal007 (1. Oktober 2005)

Das habe ich schon gemacht, und es kommt die Fehlermeldung des ersten Beitrages!

Ist da bei der Installation was falsch gelaufen?

Der Webserver is jetzt unter http://pascal007.homelinux.com erreichbar!

Bitte schaut euch auch unter PHP-Test die Installation von Corenews an!

Und ähm, wie muss der ansolute Pfad für einen .htaccess-Schutz lauten?


----------



## Arne Buchwald (1. Oktober 2005)

Es mag sich mittlerweile geändert haben, aber bisher gab es unter Windows keinen .htaccess-Schutz. Unter Windows muss dieser durch i.d.R. kostenpflichtige Produkte zugeordert werden.


----------



## Dr Dau (1. Oktober 2005)

Hallo!


			
				Arne Buchwald hat gesagt.:
			
		

> Es mag sich mittlerweile geändert haben, aber bisher gab es unter Windows keinen .htaccess-Schutz.....


Hmm, es geht hier aber wohl nicht darum ein Windows Ordner per .htaccess zu schützen, sondern ein Ordner vom Webserver (in diesem Fall also http://domain/phpmyadmin/).
Und dass war schon unter Windows 95 möglich..... Winsock2 installieren, Apache installieren, .htaccess und .htpasswd anlegen und schon hat man ein .htaccess Passwortschutz auf das Webverzeichnis gehabt.

@pascal007
So muss es in der config.inc.php stehen:

```
$cfg['Servers'][$i]['auth_type']	 = 'http';	 // Authentication method (config, http or cookie based)?
$cfg['Servers'][$i]['user']		 = 'root';	 // MySQL user
$cfg['Servers'][$i]['password']	 = '';		 // MySQL password (only needed
													// with 'config' auth_type)
```
Es gibt in phpMyAdmin unter der Rechteverwaltung 2 Einträge für Root von MySQL, für beide muss das Passwort gesetzt sein..... für root@localhost zuerst.

Gruss Dr Dau


----------



## pascal007 (1. Oktober 2005)

Danke für die Antworten! Ich werde mir das in aller Ruhe mal ansehen!

Ich komme irgendwie gar nicht mehr in die MyPHPAdmin und alle Datenbanken können auch nicht mehr erreicht werden! Kann man alles irgendwie auf 'standard' zurückstellen oder so?


----------



## Dr Dau (1. Oktober 2005)

Wenn Du als Root (oder gleichwertigen Benutzer) kein Zugriff bekommst, denke ich dass Du die Datenbank nur mit Datenverlust "zurücksetzen" kannst.
Oder hast Du vor deinen Experimenten ein Backup gemacht?


----------



## pascal007 (1. Oktober 2005)

Ich musste kein Backup erstellen, da ich noch so gut wie keine Daten in der Datenbank habe! Da ich sie ja nicht mehr ansprechen kann! Also Datenverlust wäre nicht das Problem!


----------



## Dr Dau (1. Oktober 2005)

Dann schau mal in c:\.....\xampp\mysql\backup\mysql rein.
Dort ist ein Backup was apachefriends.org angelegt hat (bei mir von Ende 2004).
Die Dateien nach c:\.....\xampp\mysql\data\mysql kopieren..... aber vorher eine Sicherungskopie machen.


----------



## pascal007 (1. Oktober 2005)

OK, jetzt komme ich rein, soll ich jetzt mal alle Schritte befolgen, die mir schon erklärt wurden? Soll ich die .htaccess-Variante oder die config-Variante versuchen?

Soll ich unter "Rechte" in der PHPMyAdmin den Benutzer "root" editieren?

EDIT: hab jetzt einen neuen Benutzer angelegt (admin) und den mit einem Passwort geschützt. Dann habe ich in der config.inf.php das Ding auf 'http' gesetzt und jetzt funzts! Kann ich jetzt die zwei vordefinierten Benutzer löschen?


----------



## Dr Dau (1. Oktober 2005)

Zuerst "root localhost" editieren, in der Tabelle "Kennwort ändern" die Checkbox bei "Kennwort" aktivieren und dann das Passwort 2 mal eingeben.

Dann bearbeitetst Du die config.inc.php, dort den Eintrag für 'auth_type' von 'config' auf 'http' ändern.

Anschliessend logst Du dich in phpMyAdmin als Root ein und änderst für "root %", wie zuvor für "root localhost", das Passwort.

Ob für die Benutzer "jeder" und "pma" auch Passwörter vergeben werden müssen/dürfen, habe ich jetzt nicht getest.

Für selbst angelegte Benutzer solltest Du jedoch auch Passwörter anlegen.

[edit]
Du hast einen neuen Benutzer angelegt der "root" ersetzen soll?
Warum hast Du "root" nicht einfach umbenannt?
Dass würde dir die Arbeit mit der Vergabe der Rechte ersparen.
[/edit]


----------



## pascal007 (1. Oktober 2005)

Sorry aber das mit dem "root *%*" hab ich nicht ganz verstanden! Kannst du mir das noch mals genauer erklären?


----------



## Dr Dau (1. Oktober 2005)

Es gibt in der Rechteverwaltung doch 2 mal "root".
1. Benutzer = root, Host = localhost
2. Benutzer = root, Host = %


----------



## pascal007 (1. Oktober 2005)

Nein, bei mir nicht! Bei mir gibt's folgende zwei Benutzer: root localhost und pma localhost (der hat irgendwie 'SHUTDOWN' berechtigungen. Meinst du vielleicht den?


----------



## Dr Dau (1. Oktober 2005)

Nein, dass ist ein anderer Benutzer..... und hat bei mir alle Berechtigungen.
Evtl. liegt es auch am Backup und/oder der XAMPP Version, aber bei mir waren nach der Installation die 4 genannten Benutzer angelegt.
Wofür welcher Benutzer ist, was die Berechtigungen bedeuten und was der Host bedeutet, sollte mal jemand sagen der dass weiss. 
Soweit ich weiss, bedeutet Host % dass auch von anderen Servern auf die Datenbank zugegriffen werden darf/kann.
Da ich XAMPP nur temporär laufen habe und dieser eh nicht von aussen zu erreichen ist, habe ich mich um sowas bisher noch nicht gekümmert.


----------



## pascal007 (1. Oktober 2005)

Ich habe eigentlich auch nicht vor, von aussen auf den Server zuzugreifen (also Datenbanken und Tabellen anlegen). Aber es funktioniert jetzt! Danke viel mals Aber soll ich diesem 'pma'-Benutzer auch ein Passwort geben?


----------



## Dr Dau (1. Oktober 2005)

Wie gesagt, ich weiss nicht wofür die ganzen Benutzer sind.
Bei mir hat "pma" allerdings volle Rechte, daher denke ich dass ein Passwort nicht verkehrt währe.


----------



## pascal007 (1. Oktober 2005)

OK! Danke viel Mals! Da wäre nur noch ein Problem (hat nicht's mit PHP zu tun  ): Mein .htaccess-Schutz auf dem Webserver funktioniert nicht (ganz). Wenn ich mich einlogge, kommt einfach wieder der Loggin-Dialog. Meine Verdächtigung: der Pfad zur .htpasswd-Datei ist flasch, aber wie muss der heissen? Meine Adresse ist ja 'pascal007.homelinux.com'! Also wenn das noch funktionieren würde, dann wär ich überglücklich!


----------



## Dr Dau (1. Oktober 2005)

c:/pfad/zur/.htpasswd
Wichtig ist dass Du ein / nimmst und nicht ein \.
Ferner ist daran zu denken dass Windows keine verschlüsselten Passwörter kennt, diese müssen in der .htpasswd also im Klartext stehen.


----------



## pascal007 (1. Oktober 2005)

Super! Du bist echt genial! Aber wieso muss man es denn bei den Web-Hoste-Angeboten (z.B. funpic.de) verschlüsseln? Durch das, dass das Passwort nicht verschlüsselt ist, kann es doch viel leichter geknackt werden, oder? Weil ein verschlüsseltes Passwort kannst de nicht mehr entschlüsseln!


----------



## Sven Mintel (1. Oktober 2005)

Dr Dau hat gesagt.:
			
		

> Ferner ist daran zu denken dass Windows keine verschlüsselten Passwörter kennt, diese müssen in der .htpasswd also im Klartext stehen.



Das kann man so prinzipiell nicht sagen.
Ich weiss nicht, woran es liegt, aber ich hatte auf Windows schon Apache installiert, wo die Passwörter verschlüsselt sein mussten.
Wenn sie verschlüsselt sein müssen, sollte man unter Windows auf jeden Fall das Tool vom Apache nehmen, mit crypt() wird es nicht gehen.


----------



## pascal007 (1. Oktober 2005)

Also ich hab's nochmals mit einem verschlüsselten versucht, hat aber nicht geklappt, schade! Wenn irgend jemand Etwas genaueres darüber weiss, soll er es uns doch bitte mitteilen!


----------



## Dr Dau (1. Oktober 2005)

@pascal007, weil funpic.de sicherlich auf Linux läuft..... und Linux ist halt nicht Windows. 

@Sven, hmm, hast recht.
Das Tool nennt sich htpasswd.exe.
Mögliche Verschlüsselungen: MD5 (default), CRYPT, SHA und Plaintext (unverschlüsselt).
Frage mich aber nicht welche von denen Windows "versteht".


----------



## Dr Dau (1. Oktober 2005)

@pascal007, öffne mal die Eingabeaufforderung, wechsel ins bin-Verzeichnis von Apache und ruf die htpasswd.exe auf.
Dann werden dir alle möglichen Parameter angezeigt.
Musst Du halt mal ein wenig probieren.


----------



## pascal007 (1. Oktober 2005)

OK! Danke! Werde das mal ausprobieren! Aber jetzt bin ich erst mal mit dem zufrieden was ich (mit eurer Hilfe natürlich) erreicht habe!


----------

