Skip to content

Commit

Permalink
privilege: fix user with % hostname can not show grants. (#15825) (#…
Browse files Browse the repository at this point in the history
  • Loading branch information
Lingyu Song authored Mar 30, 2020
1 parent 20b257d commit 844b924
Show file tree
Hide file tree
Showing 2 changed files with 9 additions and 0 deletions.
2 changes: 2 additions & 0 deletions executor/builder.go
Original file line number Diff line number Diff line change
Expand Up @@ -650,6 +650,8 @@ func (b *executorBuilder) buildShow(v *plannercore.PhysicalShow) Executor {
// The former determine privileges with roles, while the later doesn't.
vars := e.ctx.GetSessionVars()
e.User = vars.User
e.User.Hostname = vars.User.AuthHostname
e.User.Username = vars.User.AuthUsername
e.Roles = vars.ActiveRoles
}
if e.Tp == ast.ShowMasterStatus {
Expand Down
7 changes: 7 additions & 0 deletions executor/show_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -150,6 +150,13 @@ func (s *testSuite5) TestShowGrantsPrivilege(c *C) {
tk1.Se = se
err = tk1.QueryToErr("show grants for root")
c.Assert(err.Error(), Equals, executor.ErrDBaccessDenied.GenWithStackByArgs("show_grants", "%", mysql.SystemDB).Error())
// Test show grants for user with auth host name `%`.
tk2 := testkit.NewTestKit(c, s.store)
se2, err := session.CreateSession4Test(s.store)
c.Assert(err, IsNil)
c.Assert(se2.Auth(&auth.UserIdentity{Username: "show_grants", Hostname: "127.0.0.1", AuthUsername: "show_grants", AuthHostname: "%"}, nil, nil), IsTrue)
tk2.Se = se2
tk2.MustQuery("show grants")
}

func (s *testSuite5) TestIssue3641(c *C) {
Expand Down

0 comments on commit 844b924

Please sign in to comment.