user host recommend - RENAME USER

Altering mysql.user tables isn't something users should do.

RENAME USER has existed for a long time, use this instead.

Also change SpecificDNSorIp because DNS based grants are
a horrible idea, fragile, and could be disabled with
--skip-name-resolve.

closes #536
This commit is contained in:
Daniel Black 2021-02-05 09:04:24 +11:00
parent 2a63ffdcd3
commit 0be85cbb9f

View file

@ -1892,16 +1892,16 @@ q{SELECT CONCAT(user, '@', host) FROM mysql.global_priv WHERE
}
@mysqlstatlist = select_array
"SELECT CONCAT(user, '\@', host) FROM mysql.user WHERE HOST='%'";
"SELECT CONCAT(QUOTE(user), '\@', host) FROM mysql.user WHERE HOST='%'";
if (@mysqlstatlist) {
foreach my $line ( sort @mysqlstatlist ) {
chomp($line);
my $luser = (split /@/, $line)[0];
badprint "User '" . $line. "' does not specify hostname restrictions.";
push( @generalrec,
"Restrict Host for '$luser'\@% to $luser\@SpecificDNSorIp" );
"Restrict Host for $luser\@% to $luser\@LimitedIPRangeOrLocalhost" );
push( @generalrec,
"UPDATE mysql.user SET host ='SpecificDNSorIp' WHERE user='" . $luser. "' AND host ='%'; FLUSH PRIVILEGES;" );
"RENAME USER $luser\@'%' TO " . $luser. "\@LimitedIPRangeOrLocalhost;" );
}
}