EVOLUTION-MANAGER
Edit File: mysql_grant.test
-- source include/not_embedded.inc let $PORT= `select @@port`; --disable_query_log --replace_result $PORT PORT --error 0,ER_UNKNOWN_ERROR --eval CREATE TABLE t1 (a INT) ENGINE=CONNECT TABLE_TYPE=MYSQL TABNAME='tx1' OPTION_LIST='host=localhost,user=root,port=$PORT' if (!`SELECT count(*) FROM INFORMATION_SCHEMA.TABLES WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1' AND ENGINE='CONNECT' AND CREATE_OPTIONS LIKE '%`table_type`=MySQL%'`) { Skip Need MySQL support; } DROP TABLE t1; --enable_query_log --echo # --echo # Testing FILE privilege --echo # set sql_mode=""; GRANT ALL PRIVILEGES ON *.* TO user@localhost; REVOKE FILE ON *.* FROM user@localhost; set sql_mode=default; --connect(user,localhost,user,,) --connection user SELECT user(); --replace_result $PORT PORT --error ER_ACCESS_DENIED_ERROR --eval CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=MySQL OPTION_LIST='host=localhost,user=root1,port=$PORT' --connection default SELECT user(); CREATE TABLE t1remote (a INT NOT NULL); INSERT INTO t1remote VALUES (10),(20),(30); --replace_result $PORT PORT --eval CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=MySQL TABNAME=t1remote OPTION_LIST='host=localhost,user=root,port=$PORT' SELECT * FROM t1; --connection user SELECT user(); --error ER_ACCESS_DENIED_ERROR SELECT * FROM t1; --error ER_ACCESS_DENIED_ERROR INSERT INTO t1 VALUES ('xxx'); --error ER_ACCESS_DENIED_ERROR DELETE FROM t1 WHERE a='xxx'; --error ER_ACCESS_DENIED_ERROR UPDATE t1 SET a='yyy' WHERE a='xxx'; --error ER_ACCESS_DENIED_ERROR TRUNCATE TABLE t1; --error ER_ACCESS_DENIED_ERROR ALTER TABLE t1 READONLY=1; --error ER_ACCESS_DENIED_ERROR CREATE VIEW v1 AS SELECT * FROM t1; --echo # Testing a VIEW created with FILE privileges but accessed with no FILE --connection default SELECT user(); CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT * FROM t1; --connection user SELECT user(); --error ER_ACCESS_DENIED_ERROR SELECT * FROM v1; --error ER_ACCESS_DENIED_ERROR INSERT INTO v1 VALUES (2); --error ER_ACCESS_DENIED_ERROR UPDATE v1 SET a=123; --error ER_ACCESS_DENIED_ERROR DELETE FROM v1; --disconnect user --connection default SELECT user(); DROP VIEW v1; DROP TABLE t1, t1remote; DROP USER user@localhost; --echo # --echo # Testing FILE privileges done --echo #