dedlfix: Sichere Passworte für MySQL

Beitrag lesen

Tach!

Welche Richtlinen für Kennwörter gelten für das Datenbank-System MySQL? (gerne auch als Link)
Welche Sonderzeichen darf ich in Passwörtern verwenden?
Wie lang dürfen Passwörter sein?

Ich gehe mal davon aus, dass du MySQLs eigene Benutzerverwaltung meinst. Da die Funktion PASSWORD() einen Hashwert erzeugt, darf das Passwort also ausreichend lang werden. Hash-Funktionen interessieren sich üblicherweise nicht für Zeichen sondern für Bytes. Das merkt man hier deutlich, weil das Ergebnis unterschiedlich ausfällt, wenn man dieselbe Zeichenfolge in unterschiedlichen Kodierungen übergibt (natürlich mit korrektem *_set_charset() vorher).

Benutzernamen dürfen bis zu 16 Zeichen lang sein, aber dürfen sie auch Sonderzeichen beinhalten, wie z.B. $'´`"?

Wenn du die C-API verwendest, kannst du vor dem Connect die zu verwendende Zeichenkodierung setzen. PHP zum Beispiel scheint diesbezüglich nichts vorgesehen zu haben. mysqli_init() geht zwar, aber mysqli_option() kennt MYSQL_SET_CHARSET_NAME nicht. Damit schränkt PHP Nutzernamen und Passwörter praktisch auf ASCII ein, wenn man sich nicht auf Default-Konfigurationswerte des Servers verlassen möchte. (Nach einem Connect kann man aber sehr wohl die Zeichenkodierung einstellen - mit mysqli_set_charset() - aber das ist für Nutzername und Passwort zu spät.)

Es wäre nett, wenn jemand dazu etwas sagen könnte, denn ich würde mich ungerne durch ein nicht geeignetes Passwort aus meiner Datenbank ausschließen.

Dann teste das doch erstmal mit einer beliebigen Kennung und allen relevanten Kodierungen, beispielsweise an einem Testsystem.

dedlfix.