diff --git a/privilege/privileges/cache.go b/privilege/privileges/cache.go index 288e122326010..f1110edfc5490 100644 --- a/privilege/privileges/cache.go +++ b/privilege/privileges/cache.go @@ -44,7 +44,7 @@ var ( tablePrivMask = computePrivMask(mysql.AllTablePrivs) ) -const globalDBVisible = mysql.CreatePriv | mysql.SelectPriv | mysql.InsertPriv | mysql.UpdatePriv | mysql.DeletePriv | mysql.ShowDBPriv | mysql.DropPriv | mysql.AlterPriv | mysql.IndexPriv | mysql.CreateViewPriv | mysql.ShowViewPriv | mysql.GrantPriv +const globalDBVisible = mysql.CreatePriv | mysql.SelectPriv | mysql.InsertPriv | mysql.UpdatePriv | mysql.DeletePriv | mysql.ShowDBPriv | mysql.DropPriv | mysql.AlterPriv | mysql.IndexPriv | mysql.CreateViewPriv | mysql.ShowViewPriv | mysql.GrantPriv | mysql.TriggerPriv | mysql.ReferencesPriv | mysql.ExecutePriv func computePrivMask(privs []mysql.PrivilegeType) mysql.PrivilegeType { var mask mysql.PrivilegeType diff --git a/privilege/privileges/cache_test.go b/privilege/privileges/cache_test.go index 09fbe2aaa9f25..bbc8a1462448b 100644 --- a/privilege/privileges/cache_test.go +++ b/privilege/privileges/cache_test.go @@ -553,4 +553,25 @@ func (s *testCacheSuite) TestDBIsVisible(c *C) { isVisible = p.DBIsVisible("testvisdb6", "%", "visdb") c.Assert(isVisible, IsTrue) mustExec(c, se, "TRUNCATE TABLE mysql.user") + + mustExec(c, se, `INSERT INTO mysql.user (Host, User, Trigger_priv) VALUES ("%", "testvisdb7", "Y")`) + err = p.LoadUserTable(se) + c.Assert(err, IsNil) + isVisible = p.DBIsVisible("testvisdb7", "%", "visdb") + c.Assert(isVisible, IsTrue) + mustExec(c, se, "TRUNCATE TABLE mysql.user") + + mustExec(c, se, `INSERT INTO mysql.user (Host, User, References_priv) VALUES ("%", "testvisdb8", "Y")`) + err = p.LoadUserTable(se) + c.Assert(err, IsNil) + isVisible = p.DBIsVisible("testvisdb8", "%", "visdb") + c.Assert(isVisible, IsTrue) + mustExec(c, se, "TRUNCATE TABLE mysql.user") + + mustExec(c, se, `INSERT INTO mysql.user (Host, User, Execute_priv) VALUES ("%", "testvisdb9", "Y")`) + err = p.LoadUserTable(se) + c.Assert(err, IsNil) + isVisible = p.DBIsVisible("testvisdb9", "%", "visdb") + c.Assert(isVisible, IsTrue) + mustExec(c, se, "TRUNCATE TABLE mysql.user") }