Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    Modificare password DB tramite script php

    E' possibile modificare la password di un database mysql attraverso uno script in php?

    Spiego meglio:
    - Sto sviluppando un'applicazione gestionale in php che girerà in locale.
    - L'applicazione verrà utilizzata da persone che potrebbero non essere esperte di programmazione. Queste avranno installato phpmyadmin nel proprio pc.
    - Il setup dell'applicazione crea un database mysql (ovviamente con i permessi base di phpmyadmin, ovvero senza password)
    - Il setup dell'applicazione dovrebbe ora proteggere il database impostandogli una password

    - Successivamente l'applicazione interagirà con il database utilizzando la password impostata al punto precedente.


    La necessità di impostare una password per il db attraverso l'applicazione php si presenta per due motivi:
    1) Chi utilizzerà l'applicazione potrebbe non essere affatto competente di php o di mysql;
    2) Non voglio svelare la password che l'applicazione utilizza per interagire con il database, né voglio che l'utilizzatore possa modificare i valori contenuti nel database!

    Esiste dunque un modo per modificare la password di root attraverso uno script php?
    Vi ringrazio in anticipo per i vostri contributi.

  2. #2
    Certo che è possibile, dai un'occhiata QUI. Ti basta eseguire i comandi da PHP piuttosto che da shell mysql. Comunque, piuttosto che utlizzare l'utente root per accedere al DB tramite la tua applicazione, è preferibile utilizzare un utente creato ad hoc con i privilegi necessari. Prova a vedere QUI
    "Mai discutere con un idiota. Ti trascina al suo livello e ti batte con l'esperienza." (Oscar Wilde)

  3. #3
    Grazie Satifal, il tuo contributo è stato prezioso!

    Sulla base dei tuoi consigli ho creato una query che però mi genera errore, posto il codice:

    Codice PHP:
    $db mysql_connect($dbhost$dbuser_temp$dbpass_temp);
           if (
    $db == FALSE) or die ("Errore1"); 
           
    mysql_select_db($dbname$db) or die ("Errore 2");
           
    $query "DROP USER 'dwb'@'localhost'; "
               
    ."CREATE USER 'dwb'@'localhost' IDENTIFIED BY PASSWORD('$dbpass'); "
               
    ."GRANT ALL PRIVILEGES ON *.* TO 'dwb'@'localhost' IDENTIFIED BY PASSWORD('$dbpass') WITH GRANT OPTION MAX_QUERIES_PER_HOUR 0 MAX_CONNECTIONS_PER_HOUR 0 MAX_UPDATES_PER_HOUR 0 MAX_USER_CONNECTIONS 0;";
           
    mysql_query($query) or die ("Errore: ".mysql_error());
           
    mysql_close(); 
    (ovviamente la variabile $dbpass_temp è definita!!!)
    L'errore è:
    "Errore di sintassi nella query SQL vicino '('xxxxxx_è la password_xxxx')' linea 1".
    Dov'è che sbaglio?!!!

  4. #4
    Mi correggo da solo, ho risolto eliminando la voce PASSWORD ('...').
    Adesso riesco a inserire nuovi utenti con la query:
    Codice PHP:
    $query "CREATE USER prova@127.0.0.1 IDENTIFIED BY '$dbpass'"
    Ma come faccio a creare un utente QUALSIASI con host % ?
    Se provo con

    Codice PHP:
    $query "CREATE USER ''@% IDENTIFIED BY '$dbpass'"
    ottengo un errore. Come posso risolvere?
    Grazie in anticipo.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.