user mit Zugriff auf einzelne DB?

D

DerHannesGR

Grünschnabel
hallo zusammen,

ich habe folgendes vor:

einen neuen User erstellen der nur Zugriff auf eine bestimmte DB hat. Also nicht auf alle auf dem mySQL Server befindlichen Datenbanken. Sämtliche anderen DBs sollen für den User komplett unsichtbar sein.

Einen neuen User anlegen is ja nich der hit, aber wie weise ich dem User eine oder mehrere DB(s) zu ?

Ich nutze einen eigenen Server mit mySQL Dienst, hab also alle Möglichkeiten.

Danke vorab, Hannes
 
ich würde es in zwei Schritten machen, aber wahrscheinlich geht es auch mit einem ... ;)
Code:
grey@mod-001:~$ mysql -h localhost -u db-main-admin -p mysql
Enter password:
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Welcome to the MySQL monitor. Commands end with ; or \g. 
Your MySQL connection id is 943 to server version: 4.0.24_Debian-10sarge2-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql> GRANT ALL PRIVILEGES ON [COLOR="RED"]DB-NAME[/COLOR] . * TO '[COLOR="RED"]USER-NAME[/COLOR]'@'localhost' IDENTIFIED BY '[COLOR="RED"]USER-PWD[/COLOR]' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
Query OK, 0 rows affected (0.00 sec) 

mysql> quit
Bye
grey@mod-001:~$

//edit: Es ging doch noch schöner ... ;)
 
Zuletzt bearbeitet:
funktioniert wunderbar - danke schonmal.

nur wenn ich mich mit dem neuen User über phpmyadmin einlogge, hat dieser die Möglichkeit Rechte zu ändern. Also PW von Usern ändern und neue User anlegen. Wie kan ich dies noch unterbinden?
 
DerHannesGR schrieb:
funktioniert wunderbar - danke schonmal.

nur wenn ich mich mit dem neuen User über phpmyadmin einlogge, hat dieser die Möglichkeit Rechte zu ändern. Also PW von Usern ändern und neue User anlegen. Wie kan ich dies noch unterbinden?
Pfff ... bei mir geht das nicht ...
Code:
mysql> GRANT ALL PRIVILEGES ON test . * TO 'test_04'@'localhost' IDENTIFIED BY 'test_04' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0;
Query OK, 0 rows affected (0.00 sec)
Wenn ich mich dann als User test_04 bei phpmyadmin anmelde, wird diesem User nur die DB testangezeigt. Wenn ich den mysql-Client nutze schaut es so aus:
Code:
grey@mod-001:~$ mysql -h localhost -u test_04 -p mysql
Enter password:
ERROR 1044: Access denied for user: 'test_04@localhost' to database 'mysql'
grey@mod-001:~$
Da du deinem User eigentlich nur die Rechte für eine DB gegeben hast, sollte er beim Versuch, eine andere zu nutzen, scheitern.
 

Ähnliche Themen

Teil-Outsourcing von Hardware

Verbindung zwischen node.js und redis

Squid als RPCoHTTPS Proxy für Outlook Anywhere

DAViCal-Server: Aufgaben verschwinden

(force) create mode greift erst nach Bearbeiten der Rechte vom Client aus

Zurück
Oben