mostra gli accessi al server (nota che %
indica qualsiasi host o carattere jolly)
select user,host from mysql.user;
+-----------+------------+
| user | host |
+-----------+------------+
| ajax_guy | % |
| joe7 | % |
| joe8 | % |
+-----------+------------+
mostra quali sovvenzioni esistono per un determinato utente.
show grants for 'ajax_guy'@'%';
+----------------------------------------------------------------------
| Grants for [email protected]%
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------
Come concedere l'accesso a un determinato db a un determinato login. Di seguito concediamo tutti i diritti all'utente per so_gibberish
database .
grant ALL on so_gibberish.* to 'ajax_guy'@'%';
Guarda le sovvenzioni in vigore ora per quell'accesso
+----------------------------------------------------------------------
| Grants for [email protected]%
+----------------------------------------------------------------------
| GRANT USAGE ON *.* TO 'ajax_guy'@'%' IDENTIFIED BY PASSWORD ...
| GRANT ALL PRIVILEGES ON `ajax_stuff`.* TO 'ajax_guy'@'%'
| GRANT ALL PRIVILEGES ON `so_gibberish`.* TO 'ajax_guy'@'%'
| GRANT ALL PRIVILEGES ON `ajax_stuff`.`ajax_stuff` TO 'ajax_guy'@'%'
+----------------------------------------------------------------------
Crea un nuovo login drew_saturday
con una password friday987
.Ha tutti i privilegi sul database so_gibberish
e può accedere da qualsiasi host (%
)
grant ALL on so_gibberish.* to 'drew_saturday'@'%' IDENTIFIED BY 'friday987';
select user,host,password from mysql.user where user='drew_saturday';
+---------------+------+-------------------------------------------+
| user | host | password |
+---------------+------+-------------------------------------------+
| drew_saturday | % | *4600ED0F377308959665877BD327D4788DC2071F |
+---------------+------+-------------------------------------------+
A proposito, quella password sopra è la password con hash.
Nota:per MySQL 5.7 il comando sopra sarebbe:
select user,host,authentication_string from mysql.user where user='drew_saturday';
Pagina manuale di Mysql su Grant
. Non concedere diritti eccessivi agli utenti che utilizzano grant ALL on *. ...
. Sarebbe per tutti database nel sistema. Basta leggere il manuale e meno è di più.
A volte, gli amministratori vogliono concedere l'accesso a solo una manciata di tabelle in un database (non tutte le tabelle in esso contenute) a un login. Il manuale è d'obbligo leggere su questo.
E un'ultima cosa. 'drew_saturday'@'%' è un login diverso da 'drew_saturday'@'NOT-local' (prendendo in prestito dal tuo titolo). Sono accessi diversi con diritti diversi. Questo è il punto della prima cosa che ho scritto lassù.