2013-10-09 2 views
5

У меня есть довольно хорошо определенный список из 50 или около того пользователей в базе данных mysql. Все их заходы в таблице пользователей выглядеть примерно так:Добавление новых записей хоста существующим пользователям 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. 

То, что я хотел бы сделать, это добавить вторую запись для каждого пользователя, так что они могут также подключаться с 10%, используя один и тот же пароль и предоставление полной доступ с 10%, но оставляя существующие гранты на месте.

Есть ли способ, которым я мог бы сделать все это изнутри mysql (для целей автоматизации), или мне пришлось бы написать сценарий, который сбрасывает пользователей с помощью хэш-файлов &, а затем выдает новые заявления о предоставлении для хоста 10.%?

+0

Заканчивать https://dev.mysql.com/doc/mysql-utilities/1.6/en/mysqluserclone.html –

ответ

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

Потрясающе. Благодаря! –

+0

Я получаю 'ERROR 1364 (HY000): Поле 'ssl_cipher' не имеет значения по умолчанию', когда я пытаюсь это сделать. Может ли кто-нибудь просветить меня, какая из строк выше - заполнители для реальной стоимости (если таковые имеются). Или как синтаксис может быть изменен, чтобы заставить это работать? –

+0

Ну, я вижу из 'SHOW CREATE TABLE user', что некоторые из этих вещей не имеют значения по умолчанию:' x509_issuer blob NOT NULL, 'поэтому мне нужно добавить их в список в разделе INSERT, а также в секции SELECT , –

Смежные вопросы