Merge pull request #519 from sergey-dryabzhinsky/sergey-dryabzhinsky-patch-1

For #518 - use new schema for mariab-10.2+ to make passwords check
This commit is contained in:
Jean-Marie Renouard 2020-12-27 19:41:59 +01:00 committed by GitHub
commit df56ff11ad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -1769,16 +1769,24 @@ sub security_recommendations {
}
my $PASS_COLUMN_NAME = 'password';
if ( $myvar{'version'} =~ /5\.7|10\..*MariaDB*/ ) {
# New table schema available since mysql-5.7 and mariadb-10.2
# But need to be checked
if ( $myvar{'version'} =~ /5\.7|10\.[2-5]\..*MariaDB*/ ) {
my $password_column_exists =
`$mysqlcmd $mysqllogin -Bse "SELECT 1 FROM information_schema.columns WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME = 'user' AND COLUMN_NAME = 'password'" 2>>/dev/null`;
if ($password_column_exists) {
my $authstring_column_exists =
`$mysqlcmd $mysqllogin -Bse "SELECT 1 FROM information_schema.columns WHERE TABLE_SCHEMA = 'mysql' AND TABLE_NAME = 'user' AND COLUMN_NAME = 'authentication_string'" 2>>/dev/null`;
if ($password_column_exists && $authstring_column_exists) {
$PASS_COLUMN_NAME =
"IF(plugin='mysql_native_password', authentication_string, password)";
}
else {
elsif ($authstring_column_exists) {
$PASS_COLUMN_NAME = 'authentication_string';
}
elsif (!$password_column_exists) {
infoprint "Skipped due to none of known auth columns exists";
return;
}
}
debugprint "Password column = $PASS_COLUMN_NAME";