MySQL:Benutzer: Unterschied zwischen den Versionen

Aus Alexander's Wiki
 
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt)
Zeile 19: Zeile 19:


<source lang="mysql">
<source lang="mysql">
     mysql> GRANT ALL PRIVILEGES ON *.* TO 'nutzer'@'localhost' IDENTIFIED BY 'passwort' WITH GRANT OPTION;
     CREATE USER 'nutzer'@'%' IDENTIFIED BY '***';


     mysql> GRANT ALL PRIVILEGES ON *.* TO 'nutzer'@'%' IDENTIFIED BY 'passwort' WITH GRANT OPTION;
     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;
</source>
</source>


Zeile 33: Zeile 37:


<source lang="mysql">
<source lang="mysql">
     mysql> 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('localhost','nutzer',PASSWORD('passwort'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');


     mysql> INSERT INTO user VALUES('%','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');
</source>
</source>


Zeile 42: Zeile 46:


mysql neu starten (''/etc/init.d/mysql restart'')
mysql neu starten (''/etc/init.d/mysql restart'')
<source lang="mysql">
  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;
</source>

Aktuelle Version vom 15. Februar 2015, 16:08 Uhr

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;