2010-10-07 10 views
6

Qualcuno conosce la sintassi mySQL per mostrare i nomi di database che un utente specifico ha il privilegio di vedere in un database mySQL? Diciamo che l'utente è 'dimitris' che accede a un database su 'localhost', quale sarebbe la sintassi per vedere tutti i database che ha il privilegio di selezionare, aggiornare, inserire ecc.?mySQL mostra il database per l'utente

Dimitris

risposta

3

È possibile ottenere l'elenco delle banche dati cui si ha accesso con:

SHOW DATABASES; 

Se si desidera ottenere la lista per qualche altro utente che l'utente che si è registrato come, devi interrogare la tabella mysql.db.

+0

Grazie per la risposta veloce ragazzi. Era esattamente quello di cui avevo bisogno !!! – Sfairas

+0

Manca di informazioni su cosa dovrebbe essere la query 'mysql.db'. Per questo motivo, penso che la risposta di Lekensteyn sia più completa. – inspirednz

9

Per l'utente attualmente connesso, è possibile utilizzare SHOW DATABASES;. Ma, se l'utente ha il privilegio SHOW DATABASES;, sarà in grado di vedere tutti i database, anche se non ha accesso ad esso. (reference)

Supponendo che hai letto accesso alla tabella mysql.db, è possibile utilizzare:

SELECT * FROM mysql.db WHERE User="dimitris"; 

Questo restituirà un set di risultati, con Host (ad es localhost), Db (ad esempio somedatabase), User (es. dimitris) e i privilegi per quel database (Select_priv, Update_priv, ecc.)

+0

Grazie. Una risposta più completa di quella accettata. Votare. – inspirednz

Problemi correlati