From 894ebd3773631c9da32696e5f289a25051f3de71 Mon Sep 17 00:00:00 2001 From: Joel Rieke Date: Wed, 6 Mar 2024 12:55:05 -0800 Subject: [PATCH 1/2] Flex more for grant super lookups. --- sql/mysql_db/mysql_db.go | 3 +++ 1 file changed, 3 insertions(+) diff --git a/sql/mysql_db/mysql_db.go b/sql/mysql_db/mysql_db.go index 4448712629..0d6eb21aa4 100644 --- a/sql/mysql_db/mysql_db.go +++ b/sql/mysql_db/mysql_db.go @@ -321,6 +321,9 @@ func (db *MySQLDb) GetUser(user string, host string, roleSearch bool) *User { if hostIp != nil && network.Contains(hostIp) { return readUserEntry } else { + if readUserEntry.IsSuperUser { + return readUserEntry + } return nil } } else { From 46971fb2da7d10a1cc80dde81e4e01d57f576937 Mon Sep 17 00:00:00 2001 From: Joel Rieke Date: Wed, 6 Mar 2024 12:57:22 -0800 Subject: [PATCH 2/2] Flex more for grant super local lookups --- sql/mysql_db/mysql_db.go | 15 +++++++++------ 1 file changed, 9 insertions(+), 6 deletions(-) diff --git a/sql/mysql_db/mysql_db.go b/sql/mysql_db/mysql_db.go index 0d6eb21aa4..908e202297 100644 --- a/sql/mysql_db/mysql_db.go +++ b/sql/mysql_db/mysql_db.go @@ -304,6 +304,15 @@ func (db *MySQLDb) GetUser(user string, host string, roleSearch bool) *User { if len(userEntries) == 1 { readUserEntry := userEntries[0].(*User) + if host == readUserEntry.Host || + (host == "127.0.0.1" && readUserEntry.Host == "localhost") || + (host == "localhost" && readUserEntry.Host == "127.0.0.1") || + (readUserEntry.Host == "%" && (!roleSearch || host == "")) { + if readUserEntry.IsSuperUser { + return readUserEntry + } + } + if lockTime, isLocked := lockUserMap.GetUser(readUserEntry); isLocked { if time.Since(lockTime) > time.Hour { readUserEntry.Locked = false @@ -321,15 +330,9 @@ func (db *MySQLDb) GetUser(user string, host string, roleSearch bool) *User { if hostIp != nil && network.Contains(hostIp) { return readUserEntry } else { - if readUserEntry.IsSuperUser { - return readUserEntry - } return nil } } else { - if readUserEntry.IsSuperUser { - return readUserEntry - } return nil } }