diff options
author | Anel Husakovic <anel@mariadb.org> | 2020-11-26 12:43:23 +0100 |
---|---|---|
committer | Anel Husakovic <anel@mariadb.org> | 2020-11-26 18:10:40 +0100 |
commit | 1ccd1daaff50c18c74975517de7c258e846a3056 (patch) | |
tree | 54d94a880c64a7f46dba9709dcdc3412e1f3b910 | |
parent | 5991bd6215054f21ec5c36fc9345ffb50f1b2d04 (diff) | |
download | mariadb-git-1ccd1daaff50c18c74975517de7c258e846a3056.tar.gz |
MDEV-24289: show grants missing with grant option
Reviewed by:serg@mariadb.com
-rw-r--r-- | mysql-test/suite/roles/show_grants.result | 15 | ||||
-rw-r--r-- | mysql-test/suite/roles/show_grants.test | 13 | ||||
-rw-r--r-- | sql/sql_acl.cc | 3 |
3 files changed, 30 insertions, 1 deletions
diff --git a/mysql-test/suite/roles/show_grants.result b/mysql-test/suite/roles/show_grants.result index 5d46b038cf8..b523211420b 100644 --- a/mysql-test/suite/roles/show_grants.result +++ b/mysql-test/suite/roles/show_grants.result @@ -146,3 +146,18 @@ drop role test_role2; delete from mysql.roles_mapping where Role='test_role1'; delete from mysql.roles_mapping where Role='test_role2'; flush privileges; +# +# MDEV-24289: show grants missing with grant option +# +create role anel; +GRANT SELECT, UPDATE, DELETE, ALTER ON *.* TO 'anel'; +SHOW GRANTS for 'anel'; +Grants for anel +GRANT SELECT, UPDATE, DELETE, ALTER ON *.* TO 'anel' +create role MariaDB_admin; +GRANT SELECT, UPDATE, DELETE, ALTER ON *.* TO 'MariaDB_admin' WITH GRANT OPTION; +SHOW GRANTS for 'MariaDB_admin'; +Grants for MariaDB_admin +GRANT SELECT, UPDATE, DELETE, ALTER ON *.* TO 'MariaDB_admin' WITH GRANT OPTION +drop role MariaDB_admin; +drop role anel; diff --git a/mysql-test/suite/roles/show_grants.test b/mysql-test/suite/roles/show_grants.test index 9c15d8b8b2b..fc2165ac53b 100644 --- a/mysql-test/suite/roles/show_grants.test +++ b/mysql-test/suite/roles/show_grants.test @@ -88,3 +88,16 @@ drop role test_role2; delete from mysql.roles_mapping where Role='test_role1'; delete from mysql.roles_mapping where Role='test_role2'; flush privileges; + +--echo # +--echo # MDEV-24289: show grants missing with grant option +--echo # +create role anel; +GRANT SELECT, UPDATE, DELETE, ALTER ON *.* TO 'anel'; +SHOW GRANTS for 'anel'; + +create role MariaDB_admin; +GRANT SELECT, UPDATE, DELETE, ALTER ON *.* TO 'MariaDB_admin' WITH GRANT OPTION; +SHOW GRANTS for 'MariaDB_admin'; +drop role MariaDB_admin; +drop role anel; diff --git a/sql/sql_acl.cc b/sql/sql_acl.cc index 641ab69c2a7..6aa53e50bae 100644 --- a/sql/sql_acl.cc +++ b/sql/sql_acl.cc @@ -8945,7 +8945,8 @@ static bool show_global_privileges(THD *thd, ACL_USER_BASE *acl_entry, if (!handle_as_role) add_user_parameters(&global, (ACL_USER *)acl_entry, (want_access & GRANT_ACL)); - + else if (want_access & GRANT_ACL) + global.append(STRING_WITH_LEN(" WITH GRANT OPTION")); protocol->prepare_for_resend(); protocol->store(global.ptr(),global.length(),global.charset()); if (protocol->write()) |