Newsgroup: it.comp.www.php
Titolo: [OT] Utenti MySQL e permessi

Salve,
 
ringrazio prima di tutto quelli che hanno risposto al mio precedente 
post sulla doppia chiave, il discorso si è poi allargato ed ho lasciato 
correre!
 
Sto studiando appunto come lavora MySQL e MariaDB, volevo un chiarimento 
sul discorso della creazione degli utenti:
 
root@host# mysql -u root -p
Enter password:*******
mysql> use mysql;
Database changed
 
mysql> INSERT INTO user
    (host, user, password,
    select_priv, insert_priv, update_priv)
    VALUES ('localhost', 'guest',
    PASSWORD('guest123'), 'Y', 'Y', 'Y');
Query OK, 1 row affected (0.20 sec)
 
mysql> FLUSH PRIVILEGES;
Query OK, 1 row affected (0.01 sec)
 
Nello specifico con questo comando creo semplicemente un utente 
nell'archivio che di default non avrà accesso ad alcun database giusto?
 
Nel seguente modo andrò poi a dire che quell'utente avrà accesso ad un 
determinato database?
 
root@host# mysql -u root -p password;
Enter password:*******
mysql> use mysql;
Database changed
 
mysql> GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP
    -> ON TUTORIALS.*
    -> TO 'guest'@'localhost'
    -> IDENTIFIED BY 'guest123';
 
Il discorso permessi degli utenti è fondamentale e non vorrei sbagliare 
l'abc!
 
Saluti.
^Bart

Il 18/12/18 15:15, ^Bart ha scritto:

NON inserire lo user direttamente nella tabella ma utilizza i comandi 
che ti mette a disposizione mysql
 
- create user 'utente'@'host' IDENTIFIED BY 'password';
 
create user è il comando che dice a mysql di creare un utente
'utente'@'host' è il nome utente e da quale host ha accesso, in genere 
localhost o un indirizzo ip (o dns) specifico), eviterei il '%' che 
indica che ci si può connettere da qualsiasi ip (specialmente in produzione)
IDENTIFIED BY 'password' è la password che scegli.
 
GRANT SELECT, INSERT, UPDATE, DELETE ON DATABASE.TABELLE TO 'user'@'host';
 
evita di dare accesso DROP, CREATE o altro ad un utente se non 
strettamente necessario
 
poi crea un SOLO utente che verrà utilizzato dalla tua applicazione e da 
quale host si connette (in genere localhost se l'applicazione risiede 
nella stessa macchina di mysql)
 
Ciao
 
 
 
 

 Ciao
 
Saluti!
^Bart

 Ok, in questo caso viene archiviata crittografata o in chiaro?
 
la password inserita viene crittografata
 
Ciao

 Ciao
 
Saluti e grazie ancora! :)
^Bart

 PASSWORD altrimenti rimane in chiaro giusto?
 
certo


 ecc..ecc.. ecc..
 
Chiaro.
 
Saluti!
^Bart

 
 
se devi simulare il comando mysqldum, che è quello che fa phpMyAdmin 
quando fai export
 
https://dev.mysql.com/doc/refman/8.0/en/privileges-provided.html
 
 
quelle che non sono server administrations
 
 
 
fai prima ad avere
https://github.com/ifsnop/mysqldump-php
 
 
 
 
 

 
https://github.com/ifsnop/mysqldump-php
 
 
Ti ringrazio per entrambi i link, ho capito anch'io che si fa prima a 
caricarsi myslqdump-php piuttosto che smattirsi con i permessi, a me 
interessava, come ti accennavo, avere un utente root e "x" utenti super 
user in grado di fare il backup, quando caricherò quel software dovrò 
capire se e come si possa fare quello che voglio!
 
Di sicuro poi se volessi avere "x" utenti in grado da soli di crearsi un 
loro database e di avere in questo "libero accesso" (quello che accade 
negli shared hosting) dovrei comunque studiarmi i permessi e dovrei 
comunque crearmi gli utenti dentro al db mysql...
 
Saluti.
^Bart