2013-10-09 20 views
5

Ho un elenco abbastanza definito di circa 50 utenti in un database mysql. Tutti i loro interi nella tabella utente aspetto qualcosa di simile:Aggiunta di nuove voci host agli utenti esistenti di mysql

mysql> select user,host,password from user where host = '1.2.3.4'; 
+--------+---------+----------+ 
| user | host | password | 
+--------+---------+----------+ 
| user1 | 1.2.3.4 | *XXX... | 
| user2 | 1.2.3.4 | *YYY... | 
| user3 | 1.2.3.4 | *ZZZ... | 
etc. 

Quello che vorrei fare è aggiungere una seconda voce per ciascun utente in modo che possano anche collegarsi da 10.% utilizzando la stessa password e garantendo pieno accesso dal 10%, ma lasciando in essere le sovvenzioni esistenti.

C'è un modo per eseguire tutto questo all'interno di mysql (per scopi di automazione) o dovrei scrivere uno script che scarichi gli hasc degli utenti & quindi emette nuove istruzioni di concessione per l'host 10.%?

+0

Partenza https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqluserclone.html –

risposta

7
INSERT INTO user (user, host, password) 
SELECT U.user, '10.x' AS NHost, U.password FROM user AS U 
+0

impressionante. Grazie! –

+0

Ottengo 'ERROR 1364 (HY000): Field 'ssl_cipher' non ha un valore predefinito' quando provo a farlo. Qualcuno mi può illuminare, quali delle stringhe sopra sono segnaposto per un valore reale (se esiste). O come potrebbe essere modificata la sintassi per farlo funzionare? –

+0

Bene, vedo da 'SHOW CREATE TABLE user ', che alcune di queste cose non hanno un valore predefinito:' x509_issuer blob NOT NULL,' quindi ho bisogno di aggiungerle alla lista nella sezione INSERT e anche nella sezione SELECT . –

Problemi correlati