diff options
author | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
---|---|---|
committer | Daniel Baumann <daniel.baumann@progress-linux.org> | 2024-05-04 18:00:34 +0000 |
commit | 3f619478f796eddbba6e39502fe941b285dd97b1 (patch) | |
tree | e2c7b5777f728320e5b5542b6213fd3591ba51e2 /mysql-test/suite/roles/set_role-9614.result | |
parent | Initial commit. (diff) | |
download | mariadb-upstream.tar.xz mariadb-upstream.zip |
Adding upstream version 1:10.11.6.upstream/1%10.11.6upstream
Signed-off-by: Daniel Baumann <daniel.baumann@progress-linux.org>
Diffstat (limited to 'mysql-test/suite/roles/set_role-9614.result')
-rw-r--r-- | mysql-test/suite/roles/set_role-9614.result | 96 |
1 files changed, 96 insertions, 0 deletions
diff --git a/mysql-test/suite/roles/set_role-9614.result b/mysql-test/suite/roles/set_role-9614.result new file mode 100644 index 00000000..d4d689b8 --- /dev/null +++ b/mysql-test/suite/roles/set_role-9614.result @@ -0,0 +1,96 @@ +# +# MDEV-9614 Roles and Users Longer than 6 characters +# +# This test case checks the edge case presented in the MDEV. The +# real issue is actually apparent when the username is longer than the +# rolename. +# +# We need a separate database not including test or test_% names. Due to +# default privileges given on these databases. +# +DROP DATABASE IF EXISTS `bug_db`; +Warnings: +Note 1008 Can't drop database 'bug_db'; database doesn't exist +# +# The first user did not show the bug as john's length is smaller +# than client. The bug is apparent most of the time for usertestjohn. +# +CREATE USER `john`@`%`; +CREATE USER `usertestjohn`@`%`; +CREATE ROLE `client`; +# +# Setup the required tables. +# +CREATE DATABASE `bug_db`; +CREATE TABLE `bug_db`.`t0`(`c0` INT); +# +# Setup select privileges only on the role. Setting the role should give +# select access to bug_db.t0. +# +GRANT SELECT ON `bug_db`.`t0` TO `client`; +GRANT `client` TO `john`@`%`; +GRANT `client` TO `usertestjohn`@`%`; +# +# Check to see grants are set. +# +SHOW GRANTS FOR `john`@`%`; +Grants for john@% +GRANT `client` TO `john`@`%` +GRANT USAGE ON *.* TO `john`@`%` +SHOW GRANTS FOR `usertestjohn`@`%`; +Grants for usertestjohn@% +GRANT `client` TO `usertestjohn`@`%` +GRANT USAGE ON *.* TO `usertestjohn`@`%` +SHOW GRANTS FOR `client`; +Grants for client +GRANT USAGE ON *.* TO `client` +GRANT SELECT ON `bug_db`.`t0` TO `client` +show databases; +Database +bug_db +information_schema +mtr +mysql +performance_schema +sys +test +# +# Try using the database as john. +# +connect john, localhost, john,,information_schema; +show databases; +Database +information_schema +set role client; +show databases; +Database +bug_db +information_schema +use bug_db; +# +# Try using the database as usertestjohn. +# +connect usertestjohn, localhost, usertestjohn,,information_schema; +show databases; +Database +information_schema +set role client; +show databases; +Database +bug_db +information_schema +show grants; +Grants for usertestjohn@% +GRANT `client` TO `usertestjohn`@`%` +GRANT USAGE ON *.* TO `usertestjohn`@`%` +GRANT USAGE ON *.* TO `client` +GRANT SELECT ON `bug_db`.`t0` TO `client` +use bug_db; +# +# Cleanup +# +connection default; +drop user john; +drop user usertestjohn; +drop role client; +drop database bug_db; |