mariadb/mysql-test/t/partition_grant.test
unknown 870157e9fe Bug #17139: Partitions: unprivileged user can effectively drop table
Now the DROP privilege is also required on a table in order to be able
to drop a partition from the table using ALTER TABLE.


sql/sql_parse.cc:
  Require DROP privilege in addition to ALTER for dropping a partition
mysql-test/r/partition_grant.result:
  New BitKeeper file ``mysql-test/r/partition_grant.result''
mysql-test/t/partition_grant.test:
  New BitKeeper file ``mysql-test/t/partition_grant.test''
2006-03-07 12:42:23 -08:00

51 lines
1.3 KiB
Text

-- source include/have_partition.inc
# Grant tests not performed with embedded server
-- source include/not_embedded.inc
--disable_warnings
drop schema if exists mysqltest_1;
--enable_warnings
#
# Bug #17139: ALTER TABLE ... DROP PARTITION should require DROP privilege
#
create schema mysqltest_1;
use mysqltest_1;
create table t1 (a int) partition by list (a) (partition p1 values in (1), partition p2 values in (2), partition p3 values in (3));
insert into t1 values (1),(2);
grant select,alter on mysqltest_1.* to mysqltest_1@localhost;
connect (conn1,localhost,mysqltest_1,,mysqltest_1);
show grants for current_user;
alter table t1 add b int;
--error ER_TABLEACCESS_DENIED_ERROR
alter table t1 drop partition p2;
disconnect conn1;
connection default;
grant drop on mysqltest_1.* to mysqltest_1@localhost;
connect (conn2,localhost,mysqltest_1,,mysqltest_1);
alter table t1 drop partition p2;
disconnect conn2;
connection default;
revoke alter on mysqltest_1.* from mysqltest_1@localhost;
connect (conn3,localhost,mysqltest_1,,mysqltest_1);
--error ER_TABLEACCESS_DENIED_ERROR
alter table t1 drop partition p3;
disconnect conn3;
connection default;
revoke select,alter,drop on mysqltest_1.* from mysqltest_1@localhost;
drop user mysqltest_1@localhost;
drop table t1;
drop schema mysqltest_1;
--echo End of 5.1 tests