Merge #17015 - Fix #16994 - Fixing all the issues related to assigning privileges to databases with '_'

Pull-request: #17015
Ref: #17010
Fixes: #16994

Signed-off-by: William Desportes <williamdes@wdes.fr>
This commit is contained in:
William Desportes 2021-07-21 18:22:40 +02:00
commit ad5aad6968
No known key found for this signature in database
GPG Key ID: 90A0EF1B8251A889
3 changed files with 6 additions and 7 deletions

View File

@ -229,7 +229,7 @@ class PrivilegesController extends AbstractController
($username ?? ''),
($hostname ?? ''),
($tablename ?? ($routinename ?? '')),
Util::unescapeMysqlWildcards($db_name ?? ''),
($db_name ?? ''),
$itemType
);
}

View File

@ -514,8 +514,7 @@ class Privileges
return 'SELECT * FROM `mysql`.`db`'
. " WHERE `User` = '" . $this->dbi->escapeString($username) . "'"
. " AND `Host` = '" . $this->dbi->escapeString($hostname) . "'"
. " AND '" . $this->dbi->escapeString(Util::unescapeMysqlWildcards($db)) . "'"
. ' LIKE `Db`;';
. " AND `Db` = '" . $this->dbi->escapeString($db) . "'";
}
return 'SELECT `Table_priv`'
@ -1589,12 +1588,12 @@ class Privileges
];
switch ($linktype) {
case 'edit':
$params['dbname'] = Util::escapeMysqlWildcards($dbname);
$params['dbname'] = $dbname;
$params['tablename'] = $tablename;
$params['routinename'] = $routinename;
break;
case 'revoke':
$params['dbname'] = Util::escapeMysqlWildcards($dbname);
$params['dbname'] = $dbname;
$params['tablename'] = $tablename;
$params['routinename'] = $routinename;
$params['revokeall'] = 1;
@ -2926,7 +2925,7 @@ class Privileges
} else {
$unescaped_db = Util::unescapeMysqlWildcards($dbname);
$db_and_table = Util::backquote($unescaped_db) . '.';
$return_db = $unescaped_db;
$return_db = $dbname;
}
if (isset($tablename)) {
$db_and_table .= Util::backquote($tablename);

View File

@ -56,7 +56,7 @@
{%- if databases is not empty %}
<select name="pred_dbname[]" multiple="multiple">
{% for database in databases %}
<option value="{{ escaped_databases[loop.index0]|escape_mysql_wildcards }}">
<option value="{{ escaped_databases[loop.index0] }}">
{{ database }}
</option>
{% endfor %}