Newsgroup: it.comp.www.php
Titolo: Php e istruzioni di console mysql

Come passo un GRANT a mysql con php?
Cioč, con quale comando?
Con mysql_query non funziona.
Grazie

 Con mysql_query non funziona.
GRANT e' un comando, quindi come tale lo devi trattare.
Se vuoi usare le query ben venga, a quel punto pero' GRANT non serve, devi
semplicemente inserire (o modificare) i record  nelle tabelle db e user....
Ciao!

 wrote in message
news:b00puv$6tm$1...@newsreader.mailgate.org...

Era proprio quello che volevo evitare di fare  :)
Ok. Mi rassegno.
Grazie.

 Ok. Mi rassegno.
E per quale motivo?
Non puoi usare System("...") per eseguire un comando shell???

 wrote in message
news:b00r87$976$1...@newsreader.mailgate.org...

Mi sa che devo, anche perché se dopo l'inserimento non fa un flush è tutto
inutile.
vado a vedermi 'sto "system".
grazie.

 Mi sa che devo, anche perché se dopo l'inserimento non fa un flush č tutto
inutile.
E si, e' proprio cosě.
Ciao ciao!

 wrote in message
news:b00sl7$bqe$1...@newsreader.mailgate.org...

Ok, trovato sintassi della funzione system( )... peccato che non spieghi un
bel niente.
Una cosa del genere andrebbe bene?
system(mysql -h nomehost -u root -p password);
system(grant select, insert, update on db.table1, db.table2 to $utente@%
identified by $password);      [$utente e $password sono variabili trasmesse
dalla form precedente]
system(mysql flush privileges);
Puoi aiutarmi?

 posted this:

Perche' si sparano qua 'ca***te' senza un minimo di pudore?
<?php
  mysql_connect("localhost", "root","mySQLPassword") or die(mysql_error());
  mysql_query("GRANT ALL on * TO pippo IDENTIFIED BY 'pluto'") or die (mysql_error());
  mysql_query("FLUSH PRIVILEGES") or die (mysql_error());
?>
http://www.mysql.com/doc/en/GRANT.html
http://www.mysql.com/doc/en/Adding_users.html
http://www.mysql.com/doc/en/FLUSH.html

 Perche' si sparano qua 'ca***te' senza un minimo di pudore?
Chiedo scusa... non sapevo che si potesse utilizzare il comando GRANT come
istruzione sql.
Chiedo scusa soprattutto a Leningrad Cowboy e ringrazio te per la
correzione.
Ciao!

 ?>
Dunque, ho modificato come di seguito:
1   mysql_connect("localhost", "root","password_di_root") or
die(mysql_error());
2   mysql_query = "GRANT SELECT, INSERT, UPDATE, DELETE on db_name.* TO
$utente@% IDENTIFIED BY '$password'";
3   mysql_query("FLUSH PRIVILEGES") or die (mysql_error());
Mi dà errore alla seconda riga. Dov'è che sbaglio?
Grazie.

 Puoi aiutarmi?
vedi risposta mia nel thread...
-- 
I'm not a signature.

 $utente@% IDENTIFIED BY '$password'";
Certo, invece di chiamare una funzione cerchi di assegnare un valore a qualcosa 
che non sia una variabile.
mysql_query ("GRANT SELECT, INSERT, UPDATE, DELETE on db_name.* TO $utente@% IDENTIFIED BY '$password'");
Consiglio di leggere un piccolo libro su PHP/mysql (vedi anche la FAQ per questo).


 Mi dà errore alla seconda riga. Dov'è che sbaglio?
non ci credo...
mysql_query è una funzione, non una stringa!!!
(poi al limite ci voleva il $ davanti)
forse è meglio dare una ripassatina al manuale di php??
ciao
-- 
Punkarruso
mail:punkarruso chiocchiolona despammed punto com
pubblicità progresso:
http://groups.google.com

 forse è meglio dare una ripassatina al manuale di php??
E' evidentemente un refuso, basta guardare le altre due righe per capirlo.

 che non sia una variabile.
pardon, refuso.
cmq adesso ha solo cambiato errore.
dice "Something is wrong in your syntax près de ' db_name.table2 TO
nome_utente@% IDENTIFIED BY 'password'' à la ligne 1".
Non so il francese, ma a occhio e croce "près de" dovrebbe voler dire "prima
di" e prima di quella roba c'è "GRANT SELECT, INSERT, UPDATE on
db_name.table1, ...".
Non so più che fare.

 Non so più che fare.
Senza offesa: leggere _E_ capire il manuale?  ;-)

Niente da fare, sto diventando pazzo.
mysql_query("GRANT SELECT, INSERT, UPDATE ON nome_db.nome_table TO $utente
IDENTIFIED BY '$password'") or die (mysql_error());
e mi dà errore.
Se avete voglia di aiutarmi ancora vi ringrazio.

 e mi dà errore.
Quale errore? La query e' in teoria giusta. 
La tabella/database esiste? 
Sotto linux devi stare attento a maiuscolo/minuscolo.


 Sotto linux devi stare attento a maiuscolo/minuscolo.
è un 2000 server, ma ci sono stato attento lo stesso

 "Commande inconnue"
Non conosce il commando.
Versione mysql? 
I tuoi Grants sono sufficiente per eseguire queste query?


 "Commande inconnue"
Ho provato anche questo:
mysql_query("insert into user (Host, User, Password) values ('localhost',
'$utente', password('$password'))") or die(mysql_error());
mysql_query("insert into tables_priv values('localhost', 'mysql', '$utente',
'pratiche', NULL, NULL, 'Select,Insert,Update', NULL)") or
die(mysql_error());
mysql_query("insert into tables_priv values('localhost', 'mysql', '$utente',
'spedizioni', NULL, NULL, 'Select,Insert,Update', NULL)") or
die(mysql_error());
mysql_query("FLUSH PRIVILEGES") or die (mysql_error());
ma anche qui niente da fare...

 I tuoi Grants sono sufficiente per eseguire queste query?
Mi loggo come root e ho tutti i privilegi globali abilitati

 ma anche qui niente da fare...
Hai fatto prima un: 
  mysql_select_db("mysql");
?
Cmq. se non va neanche cosi' presumo che non hai i diritti di fare le modifiche. 
Lo stai facendo come root?


 wrote in message
news:b036ov$l7til$1...@ID-28812.news.dfncis.de...

Preciso: l'insert nella tabella user va a buon fine, è nelle tables_priv che
si rifiuta

 wrote in message
news:ze9V9.23126$lj5.2...@tornado.fastwebnet.it...

Sì, faccio tutto come root




Controlla i diritti root
CONNECT mysql;
SELECT * from user WHERE User='root';
SELECT * from columns_priv  WHERE User='root';
SELECT * from tables_priv  WHERE User='root';


 wrote in message
news:ul9V9.23130$lj5.2...@tornado.fastwebnet.it...

Tutto abilitato, tant'è che nella form precedente ho un'altra opzione per
inserire un utente con più privilegi e funziona perfettamente:
mysql_query("insert into user (Host, User, Password) values ('localhost',
'$utente', password('$password'))") or die("user");
mysql_query("insert into db values('localhost', '$db', '$utente', 'Y', 'Y',
'Y', 'Y', 'N', 'N', 'N', 'N', 'N', 'N')") or die("db");
mysql_query("FLUSH PRIVILEGES") or die ("flush");
non so se uno dei NULL (nella routine che dà errore) è fuori luogo ma non mi
pare

Sto seguendo questo thread perche' mi interessa, qundi vorrei chiedervi un
favore, potreste quotare in modo piu' umano?
Grazie!

 pare
Ho trovato che in tables_priv i campi Grantor e Columns_priv hanno AllowNULL
disabilitato, ma se voglio lasciarli vuoti che ci metto? Gli faccio fare
l'insert di ""? Uno spazio?

Funziona!!!
1 mysql_query("insert into user (Host, User, Password)
        values ('localhost', '$utente', password('$password'))")
        or die("riga1");
2 mysql_query("insert into tables_priv values('localhost', '$db',
        '$utente', 'pratiche', 'root', NULL, 'Select,Insert,Update',
        '')") or die("riga2");
3 mysql_query("insert into tables_priv values('localhost', '$db',
        '$utente', 'spedizioni', 'root', NULL, 'Select,Insert,Update',
        '')") or die("riga3");
mysql_query("FLUSH PRIVILEGES") or die ("riga4");
Erano quei due NULL (Grantor e Columns_priv) che rompevano le palle.
Adesso come Grantor gli faccio mettere 'root' e Columns_priv inserisce ''
(due apici singoli).
però mi rode il culo non esserci riuscito con i GRANT...
Grazie mille per l'aiuto, ho imparato parecchie cosette.