MySQL:Benutzer: Unterschied zwischen den Versionen
Aus Alexander's Wiki
Admin (Diskussion | Beiträge) |
Admin (Diskussion | Beiträge) |
||
(Eine dazwischenliegende Version desselben Benutzers wird nicht angezeigt) | |||
Zeile 19: | Zeile 19: | ||
<source lang="mysql"> | <source lang="mysql"> | ||
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; | |||
</source> | </source> | ||
Zeile 33: | Zeile 37: | ||
<source lang="mysql"> | <source lang="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('%','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;