From 7f18c579a4615eb505e8fee89aacd213f704223d Mon Sep 17 00:00:00 2001 From: Markus Makela Date: Mon, 25 Apr 2016 11:07:43 +0300 Subject: [PATCH] MXS-684: Service permission checks use correct column names The MySQL 5.7 `authentication_string` column caused all permission checks to fail for services. --- server/core/dbusers.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/server/core/dbusers.c b/server/core/dbusers.c index e6d3698d6..004abe0da 100644 --- a/server/core/dbusers.c +++ b/server/core/dbusers.c @@ -2673,7 +2673,13 @@ bool check_service_permissions(SERVICE* service) return my_errno != ER_ACCESS_DENIED_ERROR; } - if (mysql_query(mysql, "SELECT user, host, password,Select_priv FROM mysql.user limit 1") != 0) + char query[MAX_QUERY_STR_LEN]; + const char* query_pw = strstr(server->server->server_string, "5.7.") ? + MYSQL57_PASSWORD : MYSQL_PASSWORD; + + snprintf(query, sizeof(query), "SELECT user, host, %s, Select_priv FROM mysql.user limit 1", query_pw); + + if (mysql_query(mysql, query) != 0) { if (mysql_errno(mysql) == ER_TABLEACCESS_DENIED_ERROR) {