MySQL:Benutzer: Unterschied zwischen den Versionen

Aus Alexander's Wiki
(Die Seite wurde neu angelegt: „{{GoogleAnalytics}} Bei mySQL kann man auf drei Arten neue Benutzer anlegen und diesen Rechte zuweisen. == Mit dem Programm eines Drittanbieters == Von Drittanbi…“)
 
 
(5 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
{{GoogleAnalytics}}
Bei mySQL kann man auf drei Arten neue Benutzer anlegen und diesen Rechte zuweisen.
Bei mySQL kann man auf drei Arten neue Benutzer anlegen und diesen Rechte zuweisen.


== Mit dem Programm eines Drittanbieters ==
== Mit dem Programm eines Drittanbieters ==
Von Drittanbietern gibt es einige Programm. Man möge sich bei diesen erkundigen, die Benutzung ist dann zumeist intuitv.
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 [http://www.mysql.com/products/connector/ mysql-JDBC]-Treiber herunterladen.
* Unter Extras -> Voreinstellungen -> Datenbank -> JDBC-Treiber eines anderen Herstellers
: den Treiber angeben.


== Mit Hilfe der GRANT-Befehle ==
== Mit Hilfe der GRANT-Befehle ==
Zeile 15: 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 '***';
 
    CREATE DATABASE IF NOT EXISTS `nutzerdb` ;
 
    GRANT ALL PRIVILEGES ON *.* TO 'nutzer'@'localhost' IDENTIFIED BY 'passwort' WITH GRANT OPTION;


     mysql> GRANT ALL PRIVILEGES ON *.* TO 'nutzer'@'%' IDENTIFIED BY 'passwort' WITH GRANT OPTION;
     GRANT ALL PRIVILEGES ON *.* TO 'nutzer'@'%' IDENTIFIED BY 'passwort' WITH GRANT OPTION;
</source>
</source>


: '''*.*''' steht für die Datenbanken und Tabellen, kann also auch eingeschränkt werden, z.B.: meineDB.*
: '''*.*''' steht für die Datenbanken und Tabellen, kann also auch eingeschränkt werden, z.B.: meineDB.*
Zeile 30: 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');
 
    INSERT INTO user VALUES('%','nutzer',PASSWORD('passwort'),'Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y','Y');
</source>
 
== Zugriff von anderen Rechnern ==
Editieren von '''/etc/mysql/my.cnf''' und dort ''bind-address = 127.0.0.1'' auskommentieren.


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