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 101 102 103
|
source include/not_embedded.inc;
create role r1;
create role r2;
create role r3;
create role r4;
create user u1;
#CREATE A CHAIN OF ROLES
grant r2 to r1;
grant r3 to r2;
grant r4 to r3;
grant r1 to u1;
grant r4 to r1;
--sorted_result
show grants for u1;
--sorted_result
show grants for r1;
grant SELECT on *.* to u1;
grant INSERT on mysql.* to r1;
grant DELETE on mysql.roles_mapping to r2;
grant UPDATE on mysql.user to r3;
create function mysql.test_func (s CHAR(20))
returns CHAR(50) DETERMINISTIC
return concat('Test string: ',s);
delimiter |;
create procedure mysql.test_proc (OUT param1 INT)
begin
select COUNT(*) into param1 from mysql.roles_mapping;
end|
delimiter ;|
grant execute on function mysql.test_func to r2;
grant execute on procedure mysql.test_proc to r3;
grant execute on mysql.* to r4;
--sorted_result
show grants for r1;
--sorted_result
show grants for r2;
--sorted_result
show grants for r3;
--sorted_result
show grants for r4;
revoke all privileges, grant option from r4;
--sorted_result
show grants for r1;
--sorted_result
show grants for r2;
--sorted_result
show grants for r3;
--sorted_result
show grants for r4;
revoke all privileges, grant option from r3;
--sorted_result
show grants for r1;
--sorted_result
show grants for r2;
--sorted_result
show grants for r3;
--sorted_result
show grants for r4;
revoke all privileges, grant option from r2;
--sorted_result
show grants for r1;
--sorted_result
show grants for r2;
--sorted_result
show grants for r3;
--sorted_result
show grants for r4;
revoke all privileges, grant option from r1;
--sorted_result
show grants for r1;
--sorted_result
show grants for r2;
--sorted_result
show grants for r3;
--sorted_result
show grants for r4;
revoke all privileges, grant option from u1;
show grants for u1;
drop function mysql.test_func;
drop procedure mysql.test_proc;
--sorted_result
show grants for r1;
drop role r1, r2, r3, r4;
drop user u1;
|