Mysql
 sql >> Database >  >> RDS >> Mysql

Consenti tutte le connessioni remote, MySQL

Come sottolineato da Ryan sopra, il comando di cui hai bisogno è

GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Tuttavia, tieni presente che la documentazione indica che, affinché ciò funzioni, un altro account utente da localhost deve essere creato per lo stesso utente; in caso contrario, l'account anonimo creato automaticamente da mysql_install_db ha la precedenza perché ha una colonna host più specifica.

In altre parole; in ordine per l'utente user potersi connettere da qualsiasi server; È necessario creare 2 account come segue:

GRANT ALL ON *.* to [email protected] IDENTIFIED BY 'password'; 
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Leggi la documentazione completa qui.

Ed ecco il pezzo rilevante per riferimento:

Dopo esserti connesso al server come root, puoi aggiungere nuovi account. I seguenti estratti conto utilizzano GRANT per creare quattro nuovi account:

mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';

I conti creati da questi estratti conto hanno le seguenti proprietà:

Due degli account hanno un nome utente di monty e una password disome_pass. Entrambi gli account sono account di superutente con privilegi completi per fare qualsiasi cosa. L'account 'monty'@'localhost' può essere utilizzato solo quando ci si connette dall'host locale. L'account 'monty'@'%' utilizza il carattere jolly '%' per la parte host, quindi può essere utilizzato per connettersi da qualsiasi host.

È necessario disporre di entrambi gli account per monty per potersi connettere da qualsiasi luogo come monty . Senza l'account localhost, l'account utente anonimo per localhost creato damysql_install_db avrebbe la precedenza quando monty si connette dall'host locale. Di conseguenza, monty verrebbe trattato come un utente anonimo. Il motivo è che l'account utente anonimo ha un valore della colonna Host più specifico rispetto all'account 'monty'@'%' e quindi viene prima nell'ordinamento della tabella utente. (l'ordinamento delle tabelle utente è discusso nella Sezione 6.2.4, «Controllo degli accessi, fase 1:verifica della connessione».)