Merge branch '2.3' into develop

This commit is contained in:
Markus Mäkelä
2019-05-17 14:39:30 +03:00
5 changed files with 47 additions and 1 deletions

View File

@ -62,12 +62,14 @@ const char* mariadb_102_users_query =
" u.is_role, u.default_role"
" FROM mysql.user AS u LEFT JOIN mysql.db AS d "
" ON (u.user = d.user AND u.host = d.host) "
" WHERE u.plugin IN ('', 'mysql_native_password') "
" UNION "
" SELECT u.user, u.host, t.db, u.select_priv, "
" IF(u.password <> '', u.password, u.authentication_string), "
" u.is_role, u.default_role "
" FROM mysql.user AS u LEFT JOIN mysql.tables_priv AS t "
" ON (u.user = t.user AND u.host = t.host)"
" WHERE u.plugin IN ('', 'mysql_native_password') "
"), users AS ("
// Select the root row, the actual user
" SELECT t.user, t.host, t.db, t.select_priv, t.password, t.default_role AS role FROM t"
@ -90,10 +92,12 @@ const char* mariadb_101_users_query
" SELECT u.user, u.host, d.db, u.select_priv, u.password AS password, u.is_role "
" FROM mysql.user AS u LEFT JOIN mysql.db AS d "
" ON (u.user = d.user AND u.host = d.host) "
" WHERE u.plugin IN ('', 'mysql_native_password') "
" UNION "
" SELECT u.user, u.host, t.db, u.select_priv, u.password AS password, u.is_role "
" FROM mysql.user AS u LEFT JOIN mysql.tables_priv AS t "
" ON (u.user = t.user AND u.host = t.host) "
" WHERE u.plugin IN ('', 'mysql_native_password') "
") AS t "
// Discard any users that are roles
"WHERE t.is_role <> 'Y' %s "
@ -104,10 +108,12 @@ const char* mariadb_101_users_query
" SELECT u.user, u.host, d.db, u.select_priv, u.password AS password, u.default_role "
" FROM mysql.user AS u LEFT JOIN mysql.db AS d "
" ON (u.user = d.user AND u.host = d.host) "
" WHERE u.plugin IN ('', 'mysql_native_password') "
" UNION "
" SELECT u.user, u.host, t.db, u.select_priv, u.password AS password, u.default_role "
" FROM mysql.user AS u LEFT JOIN mysql.tables_priv AS t "
" ON (u.user = t.user AND u.host = t.host) "
" WHERE u.plugin IN ('', 'mysql_native_password') "
") AS t "
// Join it to the roles_mapping table to only have users with roles
"JOIN mysql.roles_mapping AS r "
@ -118,10 +124,12 @@ const char* mariadb_101_users_query
" SELECT u.user, u.host, d.db, u.select_priv, u.password AS password, u.is_role "
" FROM mysql.user AS u LEFT JOIN mysql.db AS d "
" ON (u.user = d.user AND u.host = d.host) "
" WHERE u.plugin IN ('', 'mysql_native_password') "
" UNION "
" SELECT u.user, u.host, t.db, u.select_priv, u.password AS password, u.is_role "
" FROM mysql.user AS u LEFT JOIN mysql.tables_priv AS t "
" ON (u.user = t.user AND u.host = t.host) "
" WHERE u.plugin IN ('', 'mysql_native_password') "
") AS u "
"ON (u.user = r.role AND u.is_role = 'Y') "
// We only care about users that have a default role assigned