permissões de usuário no MariaDB

permissões de usuário no MariaDB

Eu tenho uma instância do MariaDB 10.1 (teste/instável do Debian GNU/Linux 9). Ele foi criado para ser um servidor de banco de dados de rede local e nada mais. Por motivos além do escopo desta questão, esse servidor não deve hospedar nada além do próprio banco de dados, que deve escutar o endereço IP do servidor (10.7.33.102).

Se eu me conectar ao banco de dados a partir do shell do servidor, tudo estará bem:

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

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

Este drackmdé o banco de dados que outros hosts precisam usar. Tentei permitir que rooto usuário se conectasse de outro host com o seguinte comando:

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

Então, do servidor em 10.7.33.107, posso me conectar ao servidor de banco de dados, mas rootparece que o usuário não tem algum tipo de permissão:

[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)

Qual comando devo emitir para o servidor de banco de dados para fazer root(ou outros usuários) ver todos os bancos de dados e todas as tabelas neles?

Responder1

Solução que encontrei no #mariacanal no 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;

Observe a diferença: é um grant all on ...em vez de um grant all PRIVILEGES on....

informação relacionada