summaryrefslogtreecommitdiff
path: root/sql/sql_acl.cc
diff options
context:
space:
mode:
authorSergei Golubchik <serg@mariadb.org>2022-11-01 22:22:23 +0100
committerSergei Golubchik <serg@mariadb.org>2022-11-02 00:31:20 +0100
commit5dc804c3bb30d6a629036f57a1dfcac8df041fef (patch)
treeb97e6a0a36760cc0d1fb89eb1cc2ec3b1e83f41b /sql/sql_acl.cc
parent00c56e1c7c6cac21c583a57f40b87b9113adeffd (diff)
downloadmariadb-git-5dc804c3bb30d6a629036f57a1dfcac8df041fef.tar.gz
MDEV-29752 SHOW GRANTS for PUBLIC should work for all users
Diffstat (limited to 'sql/sql_acl.cc')
-rw-r--r--sql/sql_acl.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc
index 1bb58383654..65cdd63f2ef 100644
--- a/sql/sql_acl.cc
+++ b/sql/sql_acl.cc
@@ -7726,7 +7726,7 @@ bool mysql_grant_role(THD *thd, List <LEX_USER> &list, bool revoke)
if (has_auth(user, thd->lex))
DBUG_ASSERT(!grantee);
- else if (!grantee)
+ else if (!grantee && !user->is_public)
grantee= find_user_exact(hostname.str, username.str);
if (!grantee && !revoke)
@@ -9464,7 +9464,7 @@ bool get_show_user(THD *thd, LEX_USER *lex_user, const char **username,
if (lex_user->is_role())
{
*rolename= lex_user->user.str;
- do_check_access= strcmp(*rolename, sctx->priv_role);
+ do_check_access= !lex_user->is_public && strcmp(*rolename, sctx->priv_role);
}
else
{