8

我在 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.% 主机发出新的授权语句?

4

2 回答 2

9
INSERT INTO user (user, host, password)
SELECT U.user, '10.x' AS NHost, U.password FROM user AS U 
于 2013-10-09T20:07:24.880 回答
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;
于 2021-02-18T11:56:02.257 回答