mirror of
https://github.com/MariaDB/server.git
synced 2025-12-04 17:23:46 +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.
133 lines
3.0 KiB
Plaintext
133 lines
3.0 KiB
Plaintext
#
|
|
# Specific tests for case sensitive file systems
|
|
# i.e. lower_case_filesystem=OFF
|
|
#
|
|
-- source include/have_case_sensitive_file_system.inc
|
|
-- source include/not_embedded.inc
|
|
|
|
set GLOBAL sql_mode="";
|
|
set LOCAL sql_mode="";
|
|
connect (master,localhost,root,,);
|
|
connection master;
|
|
create database d1;
|
|
grant all on d1.* to 'sample'@'localhost' identified by 'password';
|
|
flush privileges;
|
|
|
|
connect (sample,localhost,sample,password,d1);
|
|
connection sample;
|
|
select database();
|
|
--error ER_DBACCESS_DENIED_ERROR
|
|
create database d2;
|
|
--error ER_DBACCESS_DENIED_ERROR
|
|
create database D1;
|
|
disconnect sample;
|
|
--source include/wait_until_disconnected.inc
|
|
|
|
connection master;
|
|
drop user 'sample'@'localhost';
|
|
drop database if exists d1;
|
|
disconnect master;
|
|
--source include/wait_until_disconnected.inc
|
|
connection default;
|
|
|
|
# End of 4.1 tests
|
|
|
|
#
|
|
# Bug#41049 does syntax "grant" case insensitive?
|
|
#
|
|
CREATE DATABASE d1;
|
|
USE d1;
|
|
CREATE TABLE T1(f1 INT);
|
|
CREATE TABLE t1(f1 INT);
|
|
GRANT SELECT ON T1 to user_1@localhost;
|
|
|
|
connect (con1,localhost,user_1,,d1);
|
|
--error ER_TABLEACCESS_DENIED_ERROR
|
|
select * from t1;
|
|
select * from T1;
|
|
connection default;
|
|
GRANT SELECT ON t1 to user_1@localhost;
|
|
connection con1;
|
|
--sorted_result
|
|
select * from information_schema.table_privileges;
|
|
connection default;
|
|
disconnect con1;
|
|
|
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1@localhost;
|
|
DROP USER user_1@localhost;
|
|
DROP DATABASE d1;
|
|
USE test;
|
|
|
|
CREATE DATABASE db1;
|
|
USE db1;
|
|
CREATE PROCEDURE p1() BEGIN END;
|
|
CREATE FUNCTION f1(i INT) RETURNS INT RETURN i+1;
|
|
|
|
GRANT USAGE ON db1.* to user_1@localhost;
|
|
GRANT EXECUTE ON PROCEDURE db1.P1 to user_1@localhost;
|
|
GRANT EXECUTE ON FUNCTION db1.f1 to user_1@localhost;
|
|
GRANT UPDATE ON db1.* to USER_1@localhost;
|
|
|
|
connect (con1,localhost,user_1,,db1);
|
|
call p1();
|
|
call P1();
|
|
select f1(1);
|
|
connect (con2,localhost,USER_1,,db1);
|
|
--error ER_PROCACCESS_DENIED_ERROR
|
|
call p1();
|
|
--error ER_PROCACCESS_DENIED_ERROR
|
|
call P1();
|
|
--error ER_PROCACCESS_DENIED_ERROR
|
|
select f1(1);
|
|
|
|
connection default;
|
|
disconnect con1;
|
|
disconnect con2;
|
|
|
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM user_1@localhost;
|
|
REVOKE ALL PRIVILEGES, GRANT OPTION FROM USER_1@localhost;
|
|
DROP FUNCTION f1;
|
|
DROP PROCEDURE p1;
|
|
DROP USER user_1@localhost;
|
|
DROP USER USER_1@localhost;
|
|
DROP DATABASE db1;
|
|
use test;
|
|
|
|
# End of 5.0 tests
|
|
|
|
|
|
--echo #
|
|
--echo # Extra test coverage for Bug#56595 RENAME TABLE causes assert on OS X
|
|
--echo #
|
|
|
|
CREATE TABLE t1(a INT);
|
|
CREATE TRIGGER t1_bi BEFORE INSERT ON t1 FOR EACH ROW SET new.a= 1;
|
|
RENAME TABLE t1 TO T1;
|
|
ALTER TABLE T1 RENAME t1;
|
|
DROP TABLE t1;
|
|
|
|
#
|
|
# MDEV-13912 mysql_upgrade: case (in)sensitivity for stored procedures
|
|
#
|
|
create database TEST;
|
|
create procedure TEST.pr() begin end;
|
|
create procedure test.pr() begin end;
|
|
--exec $MYSQL_UPGRADE --force 2>&1
|
|
drop procedure test.pr;
|
|
drop database TEST;
|
|
|
|
# End of 5.5 tests
|
|
|
|
#
|
|
# MDEV-9014 SHOW TRIGGERS not case sensitive
|
|
#
|
|
create table t1 (a int);
|
|
create trigger t1_bi before insert on t1 for each row set new.a= 1;
|
|
show triggers like '%T1%';
|
|
drop table t1;
|
|
|
|
let $datadir= `select @@datadir`;
|
|
remove_file $datadir/mysql_upgrade_info;
|
|
|
|
set GLOBAL sql_mode=default;
|