mirror of
https://github.com/MariaDB/server.git
synced 2025-11-27 05:41:41 +03:00
Also fixes: MDEV-21487: Implement option for mysql_upgrade that allows root@localhost to be replaced MDEV-21486: Implement option for mysql_install_db that allows root@localhost to be replaced Add user mariadb.sys to be definer of user view (and has right on underlying table global_priv for required operation over global_priv (SELECT,UPDATE,DELETE)) Also changed definer of gis functions in case of creation, but they work with any definer so upgrade script do not try to push this change.
95 lines
4.0 KiB
Plaintext
95 lines
4.0 KiB
Plaintext
test_sequence
|
|
------ grant/revoke/drop affects a parallel session test ------
|
|
show grants for second_user@localhost ;
|
|
ERROR 42000: There is no such grant defined for user 'second_user' on host 'localhost'
|
|
create database mysqltest;
|
|
use mysqltest;
|
|
use test;
|
|
grant usage on mysqltest.* to second_user@localhost
|
|
identified by 'looser' ;
|
|
grant select on mysqltest.t9 to second_user@localhost
|
|
identified by 'looser' ;
|
|
show grants for second_user@localhost ;
|
|
Grants for second_user@localhost
|
|
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
|
|
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
connect con3,localhost,second_user,looser,mysqltest;
|
|
connection con3;
|
|
select current_user();
|
|
current_user()
|
|
second_user@localhost
|
|
show grants for current_user();
|
|
Grants for second_user@localhost
|
|
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
|
|
prepare s_t9 from 'select c1 as my_col
|
|
from t9 where c1= 1' ;
|
|
execute s_t9 ;
|
|
my_col
|
|
1
|
|
select a as my_col from t1;
|
|
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1'
|
|
connection default;
|
|
grant select on mysqltest.t1 to second_user@localhost
|
|
identified by 'looser' ;
|
|
show grants for second_user@localhost ;
|
|
Grants for second_user@localhost
|
|
GRANT SELECT ON `mysqltest`.`t1` TO `second_user`@`localhost`
|
|
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
|
|
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
drop table mysqltest.t9 ;
|
|
show grants for second_user@localhost ;
|
|
Grants for second_user@localhost
|
|
GRANT SELECT ON `mysqltest`.`t1` TO `second_user`@`localhost`
|
|
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
|
|
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
connection con3;
|
|
show grants for second_user@localhost ;
|
|
Grants for second_user@localhost
|
|
GRANT SELECT ON `mysqltest`.`t1` TO `second_user`@`localhost`
|
|
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
|
|
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
prepare s_t1 from 'select a as my_col from t1' ;
|
|
execute s_t1 ;
|
|
my_col
|
|
1
|
|
2
|
|
3
|
|
4
|
|
execute s_t9 ;
|
|
ERROR 42S02: Table 'mysqltest.t9' doesn't exist
|
|
deallocate prepare s_t9;
|
|
connection default;
|
|
revoke all privileges on mysqltest.t1 from second_user@localhost;
|
|
show grants for second_user@localhost ;
|
|
Grants for second_user@localhost
|
|
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
|
|
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
connection con3;
|
|
show grants for second_user@localhost ;
|
|
Grants for second_user@localhost
|
|
GRANT SELECT ON `mysqltest`.`t9` TO `second_user`@`localhost`
|
|
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
execute s_t1 ;
|
|
ERROR 42000: SELECT command denied to user 'second_user'@'localhost' for table 't1'
|
|
connection default;
|
|
disconnect con3;
|
|
revoke all privileges, grant option from second_user@localhost ;
|
|
show grants for second_user@localhost ;
|
|
Grants for second_user@localhost
|
|
GRANT USAGE ON *.* TO `second_user`@`localhost` IDENTIFIED BY PASSWORD '*13843FE600B19A81E32AF50D4A6FED25875FF1F3'
|
|
drop user second_user@localhost ;
|
|
commit ;
|
|
show grants for second_user@localhost ;
|
|
ERROR 42000: There is no such grant defined for user 'second_user' on host 'localhost'
|
|
drop database mysqltest;
|
|
prepare stmt3 from ' grant all on test.t1 to drop_user@localhost
|
|
identified by ''looser'' ';
|
|
grant all on test.t1 to drop_user@localhost
|
|
identified by 'looser' ;
|
|
prepare stmt3 from ' revoke all privileges on test.t1 from
|
|
drop_user@localhost ';
|
|
revoke all privileges on test.t1 from drop_user@localhost ;
|
|
prepare stmt3 from ' drop user drop_user@localhost ';
|
|
drop user drop_user@localhost;
|