Benutzerberechtigungen in MariaDB

Benutzerberechtigungen in MariaDB

Ich habe eine MariaDB 10.1-Instanz (Debian GNU/Linux 9 Test/instabil). Sie soll ein lokaler Netzwerkdatenbankserver sein und sonst nichts. Aus Gründen, die über den Rahmen dieser Frage hinausgehen, darf dieser Server nichts anderes hosten als die Datenbank selbst, die auf der Server-IP-Adresse (10.7.33.102) lauschen muss.

Wenn ich mich von der Server-Shell aus mit der Datenbank verbinde, ist alles in Ordnung:

root@datangshan:~# mysql
[...]
MariaDB [(none)]> show databases;

+--------------------+
| Database           |
+--------------------+
| drackmd            |
| information_schema |
| mysql              |
| performance_schema |
| test               |
+--------------------+
5 rows in set (0.00 sec)

Dies drackmdist die Datenbank, die andere Hosts verwenden müssen. Ich habe versucht, rootBenutzern mit dem folgenden Befehl die Verbindung von einem anderen Host aus zu ermöglichen:

grant all privileges on `*`.`*` to 'root'@'10.7.33.107' identified by 'secret' with grant option;

Dann kann ich vom Server unter 10.7.33.107 eine Verbindung zum DB-Server herstellen, aber dem rootBenutzer scheint eine Berechtigung zu fehlen:

[email protected]:~# mysql -h 10.7.33.102 -p
Enter password: 
[...]
MariaDB [(none)]> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
+--------------------+
1 row in set (0.00 sec)

Welchen Befehl muss ich an den DB-Server senden, damit er root(oder andere Benutzer) alle Datenbanken und alle darin enthaltenen Tabellen sehen können?

Antwort1

Lösung, die ich im #mariaKanal auf IRC gefunden habe:

drop user 'root'@'10.7.33.107';
drop user 'root'@'%';
flush privileges;
grant all on `*`.`*` to 'root'@'10.7.33.107' identified by 'secret' with grant option;

Beachten Sie bitte den Unterschied: Es ist ein grant all on ...statt einem grant all PRIVILEGES on....

verwandte Informationen