Назад | Перейти на главную страницу

права пользователей в MariaDB

У меня есть экземпляр MariaDB 10.1 (Debian GNU / Linux 9 тестируемый / нестабильный). Он предназначен для использования в качестве сервера базы данных локальной сети и ничего больше. По причинам, выходящим за рамки этого вопроса, этот сервер не должен размещать что-либо еще, кроме самой базы данных, которая должна прослушивать IP-адрес сервера (10.7.33.102).

Если я подключаюсь к базе данных из оболочки сервера, все в порядке:

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

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

В drackmd это база данных, которую нужно использовать другим хостам. Я пробовал включить root пользователь для подключения с другого хоста с помощью следующей команды:

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

Затем с сервера 10.7.33.107 я могу подключиться к серверу БД, но root у пользователя, похоже, нет разрешения:

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

Какую команду я должен передать серверу БД, чтобы root (или другие пользователи) видят все базы данных и все таблицы в них?

Решение, которое я получил в #maria канал в IRC:

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;

Обратите внимание на разницу: это grant all on ... вместо grant all PRIVILEGES on....