2013-10-09 12 views
5

Mam dość dobrze zdefiniowaną listę 50 lub więcej użytkowników w bazie danych mysql. Wszystkie ich aplecie w tabeli użytkownika wyglądać następująco:Dodawanie nowych wpisów hosta do istniejących użytkowników 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. 

Co chciałbym zrobić, to dodać drugą pozycję dla każdego użytkownika tak, że mogą one również połączyć z 10% przy użyciu tego samego hasła i udzielenia pełnej dostęp z 10%, ale pozostawiając istniejące dotacje w miejscu.

Czy jest sposób, w jaki mogłem to zrobić z poziomu mysql (dla celów automatyzacji), czy też musiałbym napisać skrypt, który zrzuca hasła użytkownika, a następnie wydaje nowe oświadczenia dotacji dla hosta 10%?

+0

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

Odpowiedz

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

niesamowite. Dzięki! –

+0

Otrzymuję 'ERROR 1364 (HY000): Pole 'ssl_cipher' nie ma wartości domyślnej' przy próbie tego. Czy ktoś może mnie oświecić, który z powyższych napisów jest symbolem zastępczym dla prawdziwej wartości (jeśli taka istnieje). Albo w jaki sposób można zmienić składnię, aby to działało? –

+0

Cóż, widzę po "SHOW CREATE TABLE user", że niektóre z tych rzeczy nie mają wartości domyślnej: 'x509_issuer blob NOT NULL,' więc muszę dodać je do listy w sekcji INSERT, a także w sekcji SELECT . –

Powiązane problemy