我在mysql数据库中有一个包含50个左右用户的相当明确的列表。用户表中的所有内容都是这样的:
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 :(得分:7)
INSERT INTO user (user, host, password)
SELECT U.user, '10.x' AS NHost, U.password FROM user AS U
答案 1 :(得分:0)
如果您已经知道用户的凭据,您也可以这样做。
CREATE USER 'some_user_name'@`some_new_host_or_ip` IDENTIFIED BY 'existing_password';
FLUSH PRIVILEGES;
顺便说一下,如上面的帖子所述,我找不到 password
字段,不确定它是否与 MySQL 版本相关。就我而言,就像下面一样。所以只要这件事可以帮助别人
insert into mysql.user (user,host,authentication_string)
select user,'some_new_host_or_ip',authentication_string
from mysql.user where user = 'some_user_name' limit 1
FLUSH PRIVILEGES;