如何搜索以查看系统上是否存在MySQL用户?


8

我找不到用户是show grants for 'username'@'localhost''因为我认为用户名可能略有不同,所以我想对所有数据库用户进行通配符搜索。我怎样才能做到这一点?

更新:为澄清起见,我在想也许我还不是100%清楚。通过通配符,我的意思是我希望能够仅搜索一部分用户名,或者搜索名称匹配模式的所有用户。在系统上,我需要有超过5k的用户,尽管这并不会造成很大的性能损失,但我也不想一次浏览一次。

Answers:


9

感谢@matthewh回答,我设法组成了一个查询,该查询在搜索大量用户时将起作用:

use mysql;
select  User, Host from  user where User like 'user%';

注意: <user>无论您要搜索用户名的哪个组成部分,如果您不知道用户名的开头,都可能需要在两边都加上一个%,<>只是要注意变量,不要在其中包含它们实际的查询,除非用户名包括<或>。


7
use mysql;

select Host,User from user;

将为您提供该服务器上的所有MySQL用户。


我否决了这一点,因为它不符合通配符的含义,尽管我承认这可能是我的错,因为他们事先没有足够清楚。当我想要的是与unix上文件名的'find -name'user *'等效时,它可能被解释为所有内容。
xenoterracide
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.