mirror of
https://github.com/MariaDB/server.git
synced 2025-07-23 11:45:02 +02:00

when a definer for SP/view is wrong - it shold be ER_MALFORMED_DEFINER, not ER_NO_SUCH_USER when one uses current_role as a definer or grantee but there's no current role - it should be ER_INVALID_ROLE not ER_MALFORMED_DEFINER when a non-existent user is specified - it should be ER_NO_SUCH_USER, which should say "The user does not exist", not "Definer does not exist" clarify ER_CANT_CHANGE_TX_CHARACTERISTICS to say what cannot be changed
35 lines
932 B
Text
35 lines
932 B
Text
--source include/not_embedded.inc
|
|
|
|
--disable_cursor_protocol
|
|
select priv into @root_priv from mysql.global_priv where user='root' and host='localhost';
|
|
--enable_cursor_protocol
|
|
|
|
--error ER_INVALID_ROLE
|
|
grant select on *.* to current_role;
|
|
--error ER_INVALID_ROLE
|
|
revoke select on *.* from current_role;
|
|
--error ER_INVALID_ROLE
|
|
revoke all, grant option from current_role;
|
|
|
|
create role r1;
|
|
grant insert on test.* to r1;
|
|
grant r1 to current_user;
|
|
set role r1;
|
|
select current_role();
|
|
|
|
grant select on *.* to current_role;
|
|
show grants for current_role;
|
|
revoke insert on test.* from current_role;
|
|
show grants for current_role;
|
|
revoke all, grant option from current_role;
|
|
show grants for current_role;
|
|
|
|
set password=password('foobar');
|
|
show grants;
|
|
grant r1 to current_user() identified by 'barfoo';
|
|
show grants;
|
|
set password='';
|
|
|
|
#cleanup
|
|
drop role r1;
|
|
update mysql.global_priv set priv=@root_priv where user='root' and host='localhost';
|