Pagina 1 di 1

Phpmyadmin multi utente

Inviato: 05 ago 2010, 14:48
da wifi
Ciao Ragazzi ma come posso fare per dare a piu utenti di poter accedere al pannello phpmyadim senza essere root?

cioe io gli creo un database e loro posso solo accedere solamente al loro database e poter fare tutte le operazioni: edit delete ecc ecc.

si puo fare?

se si in che modo?

Re: Phpmyadmin multi utente

Inviato: 05 ago 2010, 16:29
da Arianna
Vado a memoria e intuito perchè non ho phpmyadmin qui davanti nè ho mai avuto necessità di fare altri utenti.

Quando entri in phpmyadmin, senza selezionare nessun DB, dovresti vedere la voce Privilegi.
Clicca li e all'interno della nuova pagina dovresti trovare "crea nuovo utente"

Re: Phpmyadmin multi utente

Inviato: 05 ago 2010, 18:58
da wifi
troppo facile... quell'utente creato li ha solo la possibilità di gestire un db.

Re: Phpmyadmin multi utente

Inviato: 05 ago 2010, 20:00
da Arianna
allora c'è un altro metodo.. un po' più noioso...

Magari quando e se trovo sto tempo che non ho mai, sviluppo un'utility in php per farlo in maniera automatica compilando semplicemente un form a video e poi lo pubblico qui per chi dovesse volerlo

Comunque al momento allora, anzichè cercare un comando apposito su phpmyadmin, che a quanto pare allora non c'è, ti do i comandi sql.
Puoi eseguirli da console accendendo con

Codice: Seleziona tutto

mysql -uroot -p
e poi ti chiede la password
oppure da phpmyadmin inserendo il codice da "SQL"

Codice: Seleziona tutto

GRANT ALL PRIVILEGES ON <nome_db>.* TO ‘<nome_utente>’@'localhost’ IDENTIFIED BY ‘<pass_utente>’ WITH GRANT OPTION;
ovviamente sostitusci le parti tra i segni di minore e maggiore con il nome del db (se non esiste già crealo prima), nome utente e pass utente.

Questo comando da a quell'utente i privilegi assoluti sul db specificato da LOCALHOST.

Se l'utente deve accedere con quelle credenziali da remoto allora va sostituito localhost con il simbolo %, quindi:

Codice: Seleziona tutto

GRANT ALL PRIVILEGES ON <nome_db>.* TO ‘<nome_utente>’@'%’ IDENTIFIED BY ‘<pass_utente>’ WITH GRANT OPTION;
Se invece vuoi creare un utente che abbia i privilegi su TUTTI i DB allora al posto del nome del db, metti *
(ovviamente anche qui specificando localhost oppure % a seconda che possa accedere solo in locale o anche da remoto)

Codice: Seleziona tutto

GRANT ALL PRIVILEGES ON *.* TO ‘<nome_utente>’@'localhost’ IDENTIFIED BY ‘<pass_utente>’ WITH GRANT OPTION;
Con questi comandi dai TUTTI i privilegi a quell'utente sul db, se invece vuoi dargli solo determinati privilegi, anzichè ALL PRIVILEGES, dovrai specificarli in elenco, e sarebbero:
ALTER, CREATE, DELETE, DROP, INDEX, INSERT, LOCK TABLES, PROCESS, RELOAD, SELECT, SHOW DATABASES, UPDATE, GRANT OPTION

per esempio:

Codice: Seleziona tutto

GRANT SELECT, INSERT, UPDATE ON test.* TO <nome_utente>@localhost

Ovviamente il tutto vale anche per la rimozione dei permessi, ma con il comando REVOKE, sia per determinate azioni che per tutto, per esempio, nell'ordine:

Codice: Seleziona tutto

REVOKE INSERT, UPDATE ON test.* FROM <nome_utente>@localhost 

Codice: Seleziona tutto

REVOKE ALL ON platform.* FROM <nome_utente>@localhost; 

Per essere specifici, potresti dare i permessi ad un utente anche solo su determinate tabelle di un db e non su tutto il db (idem per revocare i permessi).
In questo caso la sintassi dopo l'ON prevede il nomeDB.nomeTabella.

Insomma:
per i permessi su TUTTI i db: *.*
per i permessi su un db: <nome_db>.*
su una tabella: <nome_db>. <nome_tabella>


Se non sono stata chiara fammi sapere e provo a spiegarmi meglio!

Re: Phpmyadmin multi utente

Inviato: 17 dic 2010, 16:50
da KID1412
Scusate se mi intrometto ma vorrei chiedere una cosa che non capisco: Arianna, quando dici di inserire testo da console, avendo a che fare con un NAS intendi dire dopo aver stabilito una connessione ssh da un normale pc collegato in rete?
Perchè in questo modo a me non riconosce nemmeno i comandi mysql : Sad :

Re: Phpmyadmin multi utente

Inviato: 31 dic 2010, 00:27
da Arianna
scusa il ritardo... è un po' che non vengo da queste parti

intendo proprio quello.
Sa SSH con il comando mysql -uroot -p
una volta inserita la password sei loggato come utente su mysql e poi eseguire il resto dei comandi