MySQL:Benutzer

Aus Alexander's Wiki

Bei mySQL kann man auf drei Arten neue Benutzer anlegen und diesen Rechte zuweisen.

Mit dem Programm eines Drittanbieters

Von Drittanbietern gibt es einige Programm. Man möge sich bei diesen erkundigen, die Benutzung ist dann zumeist intuitv.

Beim SQL-Developer muss man erst mySQL "aktivieren".

  • Dazu den mysql-JDBC-Treiber herunterladen.
  • Unter Extras -> Voreinstellungen -> Datenbank -> JDBC-Treiber eines anderen Herstellers
den Treiber angeben.

Mit Hilfe der GRANT-Befehle

Diese Methode bevorzuge ich. Sie ist relativ Fehler unempfindlich. Man muss sich zuerst bei der Datenbank anmelden, z.B. so:

     mysql --user=root mysql

Dann benötigt man die folgenden Befehle:

     CREATE USER 'nutzer'@'%' IDENTIFIED BY '***';

     CREATE DATABASE IF NOT EXISTS `nutzerdb` ;

     GRANT ALL PRIVILEGES ON *.* TO 'nutzer'@'localhost' IDENTIFIED BY 'passwort' WITH GRANT OPTION;

     GRANT ALL PRIVILEGES ON *.* TO 'nutzer'@'%' IDENTIFIED BY 'passwort' WITH GRANT OPTION;
*.* steht für die Datenbanken und Tabellen, kann also auch eingeschränkt werden, z.B.: meineDB.*
localhost lässt nur Zugriffe von diesem zu
% lässt Zugriffe von anderen Rechnern zu

Mit Hilfe der INSERT-Befehle

Äquivalent zum oben angegebenen Befehl lautet es hier:

     INSERT INTO user VALUES('localhost','nutzer',PASSWORD('passwort'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

     INSERT INTO user VALUES('%','nutzer',PASSWORD('passwort'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');

Zugriff von anderen Rechnern

Editieren von /etc/mysql/my.cnf und dort bind-address = 127.0.0.1 auskommentieren.

mysql neu starten (/etc/init.d/mysql restart)

  GRANT USAGE ON * . * TO 'nutzer'@'%' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;