【发布时间】:2014-04-10 15:30:45
【问题描述】:
我向我的 mysql-db 添加了一个用户,并授予从多个主机访问的权限,例如:
GRANT ALL PRIVILEGES ON `db`.* TO 'dbuser'@'host1';
GRANT ALL PRIVILEGES ON `db`.* TO 'dbuser'@'host2';
GRANT ALL PRIVILEGES ON `db`.* TO 'dbuser'@'host3';
GRANT ALL PRIVILEGES ON `db`.* TO 'dbuser'@'host4';
....
完全删除用户的最短方法是什么?我试过了:
drop user 'dbuser'@'%';
ERROR 1396 (HY000): Operation DROP USER failed for 'dbuser'@'%'
drop user 'dbuser';
ERROR 1396 (HY000): Operation DROP USER failed for 'dbuser'@'%'
show grants for 'dbuser';
ERROR 1141 (42000): There is no such grant defined for user 'dbuser' on host '%'
我想,% wouzld 会被视为通配符。 Butr 似乎唯一的方法是删除每个主机的用户,例如:
drop user 'dbuser'@'host1';
drop user 'dbuser'@'host2';
drop user 'dbuser'@'host3';
...
没有更方便的删除用户的方法吗?
【问题讨论】:
-
我不知道有一个命令可以执行您想要的操作,但这会生成单独的语句:select concat('drop user \'', user, '\'@\'' , host, '\';') as drop_statement from mysql.user where user = 'username';