2013-10-09 8 views
5

Ich habe eine ziemlich gut definierte Liste von etwa 50 Benutzern in einer MySQL-Datenbank. Alle ihrer entires in der Benutzertabelle wie folgen aussehen:Neue Hosteinträge zu bestehenden MySQL-Benutzern hinzufügen

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. 

Was ich möchte, ist für jeden Benutzer einen zweiten Eintrag tun hinzuzufügen, so dass sie auch von 10% mit dem gleichen Passwort verbinden und die Gewährung von Voll Zugang von 10.%, aber die vorhandenen Zuschüsse in Stelle lassen.

Gibt es eine Möglichkeit, ich könnte dies alles aus mysql (für Automatisierungszwecke) oder würde ich ein Skript schreiben, das die Benutzer & Passwort Hashes ausgibt dann neue Erteilung Anweisungen für die 10.% Host?

+0

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

Antwort

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

ehrfürchtig. Vielen Dank! –

+0

Ich bekomme 'ERROR 1364 (HY000): Feld 'ssl_cipher' hat keinen Standardwert ', wenn ich dies versuche. Kann mir jemand aufklären, welche der obigen Strings Platzhalter für einen echten Wert sind (falls vorhanden). Oder wie könnte die Syntax geändert werden, damit dies funktioniert? –

+0

Nun sehe ich von 'SHOW CREATE TABLE Benutzer ;,' dass einige dieser Dinge keinen Standardwert haben: 'x509_issuer Blob NOT NULL,' also muss ich sie zur Liste im INSERT-Bereich und auch im SELECT-Bereich hinzufügen . –

Verwandte Themen