benutzeradministration mit ' mysqladmin '
Hallo! Ich möchte mit mysqladmin einen User anlegen und Ihm ein Paßwort verpassen. Wie mache ich das? Ich hab mal in die manpages geschaut, bekomme aber jedem versuch einen Error. Versuch: mysqladmin -u fritz -p password blablabla Folgendes funktioniert jedoch: Wenn ich mich als root anmelde und in die Console nachdem starten von apache und mysql ' mysql ' eingebe, wird mysql aufgerufen und ich kann arbeiten. Vielen dank! RubenZ
From: "Ruben Zimmermann"
Hallo!
Hallo !
Ich möchte mit mysqladmin einen User anlegen und Ihm ein Paßwort verpassen.
ähm ich wusste gar nicht das das mit mysqladmin gehen soll ?!
Wie mache ich das?
#~ mysql -u root -p Das Passwort ist bei der ersten Benutzung leer. Falls es nicht geht - log Dich als root ein und starte dann einfach mysql. Auf jedenfall wird mysql gestartet. Danach mache folgendes: mysql> USE mysql; Damit sagst Du mysql, dass Du die Datenbank mysql verwenden möchtest. Mit "show tables" bzw. "show databases" kannst Du Dir die Tabellen in der aktuell verwendeten Datenbank bzw. alle verfügbaren Datenbanken anzeigen lassen. mysql> INSERT INTO user VALUES ('localhost','neuerBenutzerName',password('geheimes Passwort'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N'); mysql> INSERT INTO user VALUES ('%','neuerBenutzerName',password('geheimes Passwort'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N'); Damit legst Du z.B. einen Benutzer an. mysql> INSERT INTO db VALUES('%','DBNamefuerNeuenBenutzer','neuerBenutzerName','Y','Y','Y','Y','Y' ,'Y','Y','Y','Y'); Damit legst Du für den Benutzer eine neue Tabelle an. Beende danach mysql z.B. mit \q und rufe mysqladmin reload auf. Danach kannst Du Dich mit mysql -u neuerBenutzerName -p einloggen ;)
Ich hab mal in die manpages geschaut, bekomme aber jedem versuch einen Error.
Versuch:
mysqladmin -u fritz -p password blablabla
Soweit ich weis ist die Option -u dafür gedacht, falls Du z.B. als fritz in Deinem Linux eingeloggt bist und möchtest mit root-Rechten auf Deine MySQL-DB zugreifen, dass Du mit -u root das MySQL sagen kannst. Sonst müsstest Du Dich vorher immer als root einloggen. Der mysqladmin kann wohl auch irgendwie Datenbanken anlegen und löschen. Ob das jedopch auch mit Datensätzen geht bezweifele ich.
Folgendes funktioniert jedoch: Wenn ich mich als root anmelde und in die Console nachdem starten von apache und mysql ' mysql ' eingebe, wird mysql aufgerufen und ich kann arbeiten.
ja logisch. Da Du mySQL installiert hast, kannst Du als root ohne Passwort drauf zugreifen. Log Dich mal als fritz ein und starte mysql und gebe dann mysql -u root -p ein. Bei der Passwortabfrage einfach ein return und du hast wahrscheinlich auch zugriff.
Vielen dank!
RubenZ
mfg Frank PS: mit UPDATE user SET Password=password('neues Passwort') where User="root"; kannst Du übrigens Dein root-passwort in MySQL ändern. PPS: Die Benutzer in Deinem Linux haben nichts und zwar GAR NICHTS mit Deinem Benutzern in MySQL zu tun. PPPS: Such mal bei google nach: MySQL Datenbankhandbuch Guido Stepken ( stepken@little-idiot.de) Version 0.99 beta, 15. September 1999 Das oder eine neuere Version kann ich nur empfehlen, wenn Du mit mySQL anfängst. Viel Spass ;) _________________________________________________________ Do You Yahoo!? Get your free @yahoo.com address at http://mail.yahoo.com
-----Original Message----- From: Frank Schmidt [mailto:unixde2@yahoo.de]
mysql> INSERT INTO user VALUES ('localhost','neuerBenutzerName',password('geheimes Passwort'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N');
mysql> INSERT INTO user VALUES ('%','neuerBenutzerName',password('geheimes Passwort'),'N','N','N','N','N','N','N','N','N','N','N','N','N','N');
Damit legst Du z.B. einen Benutzer an.
mysql> INSERT INTO db VALUES('%','DBNamefuerNeuenBenutzer','neuerBenutzerName','Y','Y',' Y','Y','Y' ,'Y','Y','Y','Y');
oder viel schöner :-) geht das: angenommen du willst dem Benutzer custom erzeugen
custom << soll sich nur auf der localen Maschine einloggen können soll auf alle Felder der Datenbank >> bankaccount << folgende Privilegien haben (SELECT,INSERT,UPDATE,DELETE,CREATE,DROP) soll sich mit dem Password >> stupid << anmelden können.
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP -> ON bankaccount.* -> TO custom@localhost -> IDENTIFIED BY 'stupid';
Damit legst Du für den Benutzer eine neue Tabelle an. Beende danach mysql z.B. mit \q und rufe mysqladmin reload auf. Danach kannst Du Dich mit mysql -u neuerBenutzerName -p einloggen ;)
brauch nicht raus aus mysql einfach FLUSH PRIVILEGES; eintippeln und schon sind die Rechte bekannt! und mir REVOKE kannst du dem User die Privilegien wieder nehmen wenn er nicht artig gewesen ist :-) einfach mal im Handbuch nach GRANT/REVOKE - Syntax suchen viel komfortabler als die mysql datenbank direkt zu bearbeiten (könnte mir vorstellen das du wenn du 20 User mit fein abgestimmten Zugriff auf ein Dutzend Tabellen hast, nach der Methode nicht mehr durchblickst,würde mir jedenfalls so gehen :-) ciao Micha
Am Mittwoch, 19. Juni 2002 17:33 schrieb Frank Schmidt: ... vielen dank erstmal für die ausführliche Antwort! Habe aber immer noch fragen ;-)
Das Passwort ist bei der ersten Benutzung leer. okay. Da stimme ich dir zu.
PPS: Die Benutzer in Deinem Linux haben nichts und zwar GAR NICHTS mit Deinem Benutzern in MySQL zu tun.
Kann schon sein. Aber warum kann ich dann als Benutzer ( != root ) mich auf meinem Rechner unter mysql einloggen? Ist das von mysql so vorgesehen? Ich sehe das als Sicherheitslücke, dass ich als normaler User eine Datenbank die ich zuvor als root erstellt habe einfach so zerstören (drop database )kann.
MySQL Datenbankhandbuch Guido Stepken ( stepken@little-idiot.de) Version 0.99 beta, 15. September 1999
Das Buch ist nur noch auf den *.html Seiten verfügbar. Und die Mirror bieten die Datei auch nicht mehr an. Kannst du mir mal das Ding als *.pdf oder *.mit_irgendwas_gepackt mailen? Gruß & Dank RubenZ
From: Ruben Zimmermann [mailto:mousetea@gmx.de] Kann schon sein. Aber warum kann ich dann als Benutzer ( != root ) mich auf meinem Rechner unter mysql einloggen? Ist das von mysql so vorgesehen? Ich sehe das als Sicherheitslücke, dass ich als normaler User eine
Hi Ruben, Hab jetzt gerade keine 'jungfräuliche' MySQL zur Verfügung aber wenn ich mich recht entsinne wird auser root@localhost noch vier andere User standartmäßig angelegt. zb. auch %@localhost (alle User auf dem lokalen Host) oder auch %@% (alle User von any Host) die mußt du natürlich alle löschen. Sonst ist das natürlich eine Sicherheitslücke. Die User sind nur so zum Spielen gedacht und root mußt du ein Passwort geben. UPDATE user SET Password = Password('geheim') WHERE User = 'root'; FLUSH PRIVILEGES; zum Thema Sicherheit gibt's auch viel Infos in der Doku www.mysql.com Surf mal hin - ist sogar dursuchbar mit User-Komentaren besser als jedes Buch! ciao Micha
participants (4)
-
Frank Schmidt
-
Michael Temeschinko
-
Peter Wiersig
-
Ruben Zimmermann