summaryrefslogtreecommitdiff
path: root/mysql-test/suite/roles/rebuild_role_grants.test
blob: 7007df0ecdddf3712ff4284c0877d2c5470933d1 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
source include/not_embedded.inc;

create role r1;
create user u1;
grant r1 to u1;

#CHECK IF GRANTS ARE UPDATED ON GRANT
--sorted_result
show grants for u1;

create user u2;

#CHECK THAT GRANTS ARE UPDATED ON ACL_USERS CHANGE
--sorted_result
show grants for u1;
--sorted_result
show grants for u2;
--sorted_result
select * from mysql.roles_mapping;

revoke r1 from u1;
#TEST ERROR MESSAGE
--error ER_CANNOT_REVOKE_ROLE
revoke r1 from u1;
--sorted_result
show grants for u1;
--sorted_result
select * from mysql.roles_mapping;

# granting twice is ok
grant r1 to u1;
grant r1 to u1;
--sorted_result
show grants for u1;
--sorted_result
select * from mysql.roles_mapping;

drop role r1;
--sorted_result
show grants for u1;
--sorted_result
select * from mysql.roles_mapping;

create role r1;
grant r1 to u1;
--sorted_result
select * from mysql.roles_mapping;

drop user u1;
--error ER_NONEXISTING_GRANT
show grants for u1;
--sorted_result
select * from mysql.roles_mapping;

drop role r1;
drop user u2;

#
# MDEV-8614 Assertion `status == 0' failed in add_role_user_mapping_action on RENAME USER
#
create user foo@localhost;
grant create user on *.* to foo@localhost;
--connect (con1, localhost, foo,,)
create role look, isp, xxx, ppp;
rename user current_user to nnnn@'%';
drop role look, isp, xxx, ppp;
connection default;
disconnect con1;
drop user nnnn@'%';

#
# MDEV-17964 Assertion `status == 0' failed in add_role_user_mapping_action
#            upon CREATE USER and DROP ROLE
#
CREATE USER u@localhost;

--let $n= 1
while ($n < 129)
{
  eval CREATE ROLE r$n;
  inc $n;
}

CREATE ROLE n;
CREATE ROLE d WITH ADMIN n;
CREATE ROLE '%' WITH ADMIN u@localhost;
DROP ROLE n;
CREATE USER 't';

--let $n= 1
while ($n < 129)
{
  eval DROP ROLE r$n;
  inc $n;
}

DROP ROLE d;
DROP ROLE '%';
DROP USER 't';
DROP USER u@localhost;