Vi sottopongo un problema che mi sta assillando da una settimana, nonostante varie ricerche e documentazioni sul web!
Sto creando un sistema gestionale che gira in locale.
Ho installato EasyPHP.
Tramite un applicativo php:
- creo un nuovo database chiamato discoweb.
- definisco un nuovo utente dwb per il db discoweb.
- gli assegno tutti i permessi.
- rimuovo i permessi all'utente root
Nella logica sembra semplice, ma ottengo un errore. Ecco il codice:
Codice PHP:
$conn_temp = mysql_connect('127.0.0.1','root','');
$query = "CREATE DATABASE IF NOT EXISTS discoweb CHARACTER SET utf8";
mysql_query("$query",$conn_temp);
//righe di creazione tabelle.... funzionanti!
$query = "GRANT ALL PRIVILEGES ON *.* TO dwb@localhost IDENTIFIED BY '$dbpass' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0"; // assegno tutti i privilegi a dwb su localhost
mysql_query($query);
$query = "GRANT ALL PRIVILEGES ON *.* TO dwb@127.0.0.1 IDENTIFIED BY '$dbpass' WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0"; // assegno tutti i privilegi a dwb su host 127.0.0.1
mysql_query($query);
$query = "GRANT SELECT, INSERT, UPDATE, DELETE ON *.* TO''@'%' IDENTIFIED BY '$dbpass' WITH MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0"; // assegno permessi limitati ai computer slave
mysql_query($query);
//FIN QUI TUTTO OK!
$query = "REVOKE GRANT OPTION ON discoweb.* FROM 'root'@'127.0.0.1'"; // rimuovo permessi a utente root per il db discoweb
mysql_query($query) or die ("Errore impostazione permessi. Contattare i fornitori del programma. (cod. 138). ".mysql_error());
// OTTENGO ERRORE: grant non definita per l'utente!!!
$query = "REVOKE ALL PRIVILEGES ON discoweb.* FROM 'root'@'127.0.0.1'"; // rimuovo permessi a utente root per il db discoweb
mysql_query($query) or die ("Errore impostazione permessi. Contattare i fornitori del programma. (cod. 139)");
$query = "REVOKE GRANT OPTION ON discoweb.* FROM 'root'@'localhost'";
mysql_query($query) or die ("Errore impostazione permessi. Contattare i fornitori del programma. (cod. 140)");
$query = "REVOKE ALL PRIVILEGES ON discoweb.* FROM 'root'@'localhost'";
mysql_query($query) or die ("Errore impostazione permessi. Contattare i fornitori del programma. (cod. 141)");
Quando eseguo l'applicativo mi fornisce appunto l'errore (cod.138) dicendomi che GRANT non è definita per quell'utente.
Se rimuovo quella riga eseguendo la seconda istruzine, ottengo comunque l'errore cod.139
Dove sbaglio?!!!
Vi ringrazio in anticipo per il vostro aiuto!