Conceder privilégios no MariaDB? [fechadas]

2

Estou seguindo um tutorial para instalar o Zabbix no meu CentOS 7.2 Aqui está a linha de comando usada para criar o banco de dados do zabbix e dar privilégios

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]> create database zabbix; 
Query OK, 1 row affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'localhost' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> grant all privileges on zabbix.* to zabbix@'%' identified by 'password'; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> flush privileges; 
Query OK, 0 rows affected (0.00 sec)
MariaDB [(none)]> exit 
Bye

Eu não entendo o comando usado para conceder privilégios ao zabbix @ '%'. Qual o significado disso?

    
por The One 12.08.2016 / 10:34

2 respostas

4

Se o nome do host for '%', ele corresponderá a uma solicitação de conexão de qualquer host - exceto localhost uma distinção muito importante!
Em outras palavras, se você executou o comando

grant all privileges on zabbix.* to zabbix@'%' identified by 'password';

Como % é um tipo de host "curinga", é possível que o usuário zabbix possa se conectar a partir de máquinas remotas e localhost.
No entanto, se zabbix tentar se conectar a partir do mesmo sistema em que o servidor SQL estava em execução, o Maria DB negaria a conexão,

Portanto, se você realmente deseja que zabbix seja capaz de se conectar de qualquer lugar que precise para executar ambos

grant all privileges on zabbix.* to zabbix@'localhost' identified by 'password';

e

grant all privileges on zabbix.* to zabbix@'%' identified by 'password';
    
por 12.08.2016 / 11:15
2

O manual de referência do MySQL explica isso muito bem. Aqui está um resumo rápido

Divida o identificador de conexão em nome de usuário e host de origem

  1. O nome de usuário deve corresponder ao nome de usuário com o qual você está autenticando
  2. Se o nome do host for '%', ele corresponderá a qualquer nome de host de origem
  3. Caso contrário, o nome do host deve corresponder a um nome DNS literal
por 12.08.2016 / 10:53