Browse Source
"mtr --suite=connect --embedded" tests did not work for two reasons:
"mtr --suite=connect --embedded" tests did not work for two reasons:
1. The Connect engine code assumed that mysql_home_directory is always "./", which is not the fact in case of embedded server. Fixing the routines creating file names to add the mysql_home_directory prefix. 2. FILE privilege is not checked in embedded server. Moving FILE related tests into separate files. Skipping the FILE related tests when running with --embedded. added: storage/connect/mysql-test/connect/r/grant.result storage/connect/mysql-test/connect/r/ini_grant.result storage/connect/mysql-test/connect/r/mysql_grant.result storage/connect/mysql-test/connect/r/xml_grant.result storage/connect/mysql-test/connect/t/grant.test storage/connect/mysql-test/connect/t/ini_grant.test storage/connect/mysql-test/connect/t/mysql_grant.test storage/connect/mysql-test/connect/t/xml_grant.test modified: storage/connect/global.h storage/connect/ha_connect.cc storage/connect/mycat.cc storage/connect/mysql-test/connect/r/bin.result storage/connect/mysql-test/connect/r/csv.result storage/connect/mysql-test/connect/r/dbf.result storage/connect/mysql-test/connect/r/dir.result storage/connect/mysql-test/connect/r/fix.result storage/connect/mysql-test/connect/r/ini.result storage/connect/mysql-test/connect/r/mysql.result storage/connect/mysql-test/connect/r/vec.result storage/connect/mysql-test/connect/r/xml.result storage/connect/mysql-test/connect/t/bin.test storage/connect/mysql-test/connect/t/csv.test storage/connect/mysql-test/connect/t/dbf.test storage/connect/mysql-test/connect/t/dir.test storage/connect/mysql-test/connect/t/fix.test storage/connect/mysql-test/connect/t/ini.test storage/connect/mysql-test/connect/t/mysql.test storage/connect/mysql-test/connect/t/vec.test storage/connect/mysql-test/connect/t/xml.test storage/connect/plgdbsem.h storage/connect/plugutil.cpull/3/head
31 changed files with 1175 additions and 1025 deletions
-
3storage/connect/global.h
-
80storage/connect/ha_connect.cc
-
7storage/connect/mycat.cc
-
94storage/connect/mysql-test/connect/r/bin.result
-
94storage/connect/mysql-test/connect/r/csv.result
-
94storage/connect/mysql-test/connect/r/dbf.result
-
69storage/connect/mysql-test/connect/r/dir.result
-
94storage/connect/mysql-test/connect/r/fix.result
-
539storage/connect/mysql-test/connect/r/grant.result
-
79storage/connect/mysql-test/connect/r/ini.result
-
79storage/connect/mysql-test/connect/r/ini_grant.result
-
63storage/connect/mysql-test/connect/r/mysql.result
-
63storage/connect/mysql-test/connect/r/mysql_grant.result
-
94storage/connect/mysql-test/connect/r/vec.result
-
104storage/connect/mysql-test/connect/r/xml.result
-
96storage/connect/mysql-test/connect/r/xml_grant.result
-
4storage/connect/mysql-test/connect/t/bin.test
-
4storage/connect/mysql-test/connect/t/csv.test
-
4storage/connect/mysql-test/connect/t/dbf.test
-
70storage/connect/mysql-test/connect/t/dir.test
-
4storage/connect/mysql-test/connect/t/fix.test
-
95storage/connect/mysql-test/connect/t/grant.test
-
75storage/connect/mysql-test/connect/t/ini.test
-
79storage/connect/mysql-test/connect/t/ini_grant.test
-
60storage/connect/mysql-test/connect/t/mysql.test
-
78storage/connect/mysql-test/connect/t/mysql_grant.test
-
4storage/connect/mysql-test/connect/t/vec.test
-
17storage/connect/mysql-test/connect/t/xml.test
-
23storage/connect/mysql-test/connect/t/xml_grant.test
-
1storage/connect/plgdbsem.h
-
30storage/connect/plugutil.c
@ -0,0 +1,539 @@ |
|||
# |
|||
# Testing FILE privilege |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 ( |
|||
path VARCHAR(256) NOT NULL flag=1, |
|||
fname VARCHAR(256) NOT NULL, |
|||
ftype CHAR(4) NOT NULL, |
|||
size DOUBLE(12,0) NOT NULL flag=5 |
|||
) ENGINE=CONNECT TABLE_TYPE=DIR FILE_NAME='*.*'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1 ( |
|||
path VARCHAR(256) NOT NULL flag=1, |
|||
fname VARCHAR(256) NOT NULL, |
|||
ftype CHAR(4) NOT NULL, |
|||
size DOUBLE(12,0) NOT NULL flag=5 |
|||
) ENGINE=CONNECT TABLE_TYPE=DIR FILE_NAME='*.*'; |
|||
SELECT fname, ftype, size FROM t1 WHERE size>0; |
|||
fname ftype size |
|||
t1 .frm 1081 |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO t1 VALUES (); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1 WHERE path='xxx'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET path='yyy' WHERE path='xxx'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES (1,1,1,1); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET path=123; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
# |
|||
# Testing FILE privileges done |
|||
# |
|||
# |
|||
# Beginning of grant.inc |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=BIN; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.bin |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
a |
|||
10 |
|||
UPDATE t1 SET a=20; |
|||
SELECT * FROM t1; |
|||
a |
|||
20 |
|||
DELETE FROM t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
INSERT INTO t1 VALUES(10); |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT * FROM v1; |
|||
a |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=BIN FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=BIN FILE_NAME='t1.EXT'; |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
INSERT INTO t1 VALUES (10); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET a=20; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 FILE_NAME='t2.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES (2); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET a=123; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=BIN; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.bin |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
ALTER TABLE t1 FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
# |
|||
# End of grant.inc |
|||
# |
|||
# |
|||
# Beginning of grant.inc |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=CSV; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.csv |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
a |
|||
10 |
|||
UPDATE t1 SET a=20; |
|||
SELECT * FROM t1; |
|||
a |
|||
20 |
|||
DELETE FROM t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
INSERT INTO t1 VALUES(10); |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT * FROM v1; |
|||
a |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=CSV FILE_NAME='t1.EXT'; |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
INSERT INTO t1 VALUES (10); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET a=20; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 FILE_NAME='t2.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES (2); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET a=123; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=CSV; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.csv |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
ALTER TABLE t1 FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
# |
|||
# End of grant.inc |
|||
# |
|||
# |
|||
# Beginning of grant.inc |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=DBF; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.dbf |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
a |
|||
10 |
|||
UPDATE t1 SET a=20; |
|||
SELECT * FROM t1; |
|||
a |
|||
20 |
|||
DELETE FROM t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
INSERT INTO t1 VALUES(10); |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT * FROM v1; |
|||
a |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=DBF FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=DBF FILE_NAME='t1.EXT'; |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
INSERT INTO t1 VALUES (10); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET a=20; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 FILE_NAME='t2.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES (2); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET a=123; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=DBF; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.dbf |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
ALTER TABLE t1 FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
# |
|||
# End of grant.inc |
|||
# |
|||
# |
|||
# Beginning of grant.inc |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=FIX; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.fix |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
a |
|||
10 |
|||
UPDATE t1 SET a=20; |
|||
SELECT * FROM t1; |
|||
a |
|||
20 |
|||
DELETE FROM t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
INSERT INTO t1 VALUES(10); |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT * FROM v1; |
|||
a |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=FIX FILE_NAME='t1.EXT'; |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
INSERT INTO t1 VALUES (10); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET a=20; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 FILE_NAME='t2.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES (2); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET a=123; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=FIX; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.fix |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
ALTER TABLE t1 FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
# |
|||
# End of grant.inc |
|||
# |
|||
# |
|||
# Beginning of grant.inc |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=VEC MAX_ROWS=100; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.vec |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
a |
|||
10 |
|||
UPDATE t1 SET a=20; |
|||
SELECT * FROM t1; |
|||
a |
|||
20 |
|||
DELETE FROM t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
INSERT INTO t1 VALUES(10); |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT * FROM v1; |
|||
a |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=VEC MAX_ROWS=100 FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=VEC MAX_ROWS=100 FILE_NAME='t1.EXT'; |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
INSERT INTO t1 VALUES (10); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET a=20; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 FILE_NAME='t2.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES (2); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET a=123; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=VEC MAX_ROWS=100; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.vec |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
ALTER TABLE t1 FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
# |
|||
# End of grant.inc |
|||
# |
|||
@ -0,0 +1,79 @@ |
|||
# |
|||
# Checking FILE privileges |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=INI; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.ini |
|||
INSERT INTO t1 VALUES ('sec1','val1'); |
|||
SELECT * FROM t1; |
|||
sec val |
|||
sec1 val1 |
|||
UPDATE t1 SET val='val11'; |
|||
SELECT * FROM t1; |
|||
sec val |
|||
sec1 val11 |
|||
DELETE FROM t1; |
|||
SELECT * FROM t1; |
|||
sec val |
|||
INSERT INTO t1 VALUES('sec2','val2'); |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
sec val |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT * FROM v1; |
|||
sec val |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.EXT'; |
|||
INSERT INTO t1 VALUES ('sec1','val1'); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
INSERT INTO t1 VALUES ('sec2','val2'); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET val='val11'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES ('sec3','val3'); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET val='val11'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
# |
|||
# Checking FILE privileges: done |
|||
# |
|||
@ -0,0 +1,63 @@ |
|||
# |
|||
# Testing FILE privilege |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=MySQL OPTION_LIST='host=localhost,user=root1,port=PORT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1remote (a INT NOT NULL); |
|||
INSERT INTO t1remote VALUES (10),(20),(30); |
|||
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; |
|||
a |
|||
10 |
|||
20 |
|||
30 |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO t1 VALUES ('xxx'); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1 WHERE a='xxx'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET a='yyy' WHERE a='xxx'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES (2); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET a=123; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
DROP VIEW v1; |
|||
DROP TABLE t1, t1remote; |
|||
DROP USER user@localhost; |
|||
# |
|||
# Testing FILE privileges done |
|||
# |
|||
@ -0,0 +1,96 @@ |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.xml |
|||
# |
|||
# Beginning of grant.inc |
|||
# |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=libxml2,rownode=row'; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.xml |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT * FROM t1; |
|||
a |
|||
10 |
|||
UPDATE t1 SET a=20; |
|||
SELECT * FROM t1; |
|||
a |
|||
20 |
|||
DELETE FROM t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
INSERT INTO t1 VALUES(10); |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
a |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT * FROM v1; |
|||
a |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=libxml2,rownode=row' FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=libxml2,rownode=row' FILE_NAME='t1.EXT'; |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
INSERT INTO t1 VALUES (10); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE t1 SET a=20; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
TRUNCATE TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 READONLY=1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
ALTER TABLE t1 FILE_NAME='t2.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
# Testing a VIEW created with FILE privileges but accessed with no FILE |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
SELECT * FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
INSERT INTO v1 VALUES (2); |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
UPDATE v1 SET a=123; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DELETE FROM v1; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
SELECT user(); |
|||
user() |
|||
root@localhost |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=libxml2,rownode=row'; |
|||
Warnings: |
|||
Warning 1105 No file name. Table will use t1.xml |
|||
INSERT INTO t1 VALUES (10); |
|||
SELECT user(); |
|||
user() |
|||
user@localhost |
|||
ALTER TABLE t1 FILE_NAME='t1.EXT'; |
|||
ERROR 28000: Access denied for user 'user'@'localhost' (using password: NO) |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
# |
|||
# End of grant.inc |
|||
# |
|||
@ -0,0 +1,95 @@ |
|||
-- source include/not_embedded.inc |
|||
|
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--echo # |
|||
--echo # Testing FILE privilege |
|||
--echo # |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
--connect(user,localhost,user,,) |
|||
--connection user |
|||
SELECT user(); |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
CREATE TABLE t1 ( |
|||
path VARCHAR(256) NOT NULL flag=1, |
|||
fname VARCHAR(256) NOT NULL, |
|||
ftype CHAR(4) NOT NULL, |
|||
size DOUBLE(12,0) NOT NULL flag=5 |
|||
) ENGINE=CONNECT TABLE_TYPE=DIR FILE_NAME='*.*'; |
|||
--connection default |
|||
SELECT user(); |
|||
CREATE TABLE t1 ( |
|||
path VARCHAR(256) NOT NULL flag=1, |
|||
fname VARCHAR(256) NOT NULL, |
|||
ftype CHAR(4) NOT NULL, |
|||
size DOUBLE(12,0) NOT NULL flag=5 |
|||
) ENGINE=CONNECT TABLE_TYPE=DIR FILE_NAME='*.*'; |
|||
# "size>0" to skip directory names on Windows |
|||
--replace_result $MYSQLD_DATADIR DATADIR/ |
|||
SELECT fname, ftype, size FROM t1 WHERE size>0; |
|||
|
|||
--connection user |
|||
SELECT user(); |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
SELECT * FROM t1; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
INSERT INTO t1 VALUES (); |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
DELETE FROM t1 WHERE path='xxx'; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
UPDATE t1 SET path='yyy' WHERE path='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 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 (1,1,1,1); |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
UPDATE v1 SET path=123; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
DELETE FROM v1; |
|||
|
|||
--disconnect user |
|||
--connection default |
|||
SELECT user(); |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
DROP USER user@localhost; |
|||
--echo # |
|||
--echo # Testing FILE privileges done |
|||
--echo # |
|||
|
|||
|
|||
let $TABLE_OPTIONS=TABLE_TYPE=BIN; |
|||
let $FILE_EXT=BIN; |
|||
--source grant.inc |
|||
|
|||
let $TABLE_OPTIONS=TABLE_TYPE=CSV; |
|||
let $FILE_EXT=CSV; |
|||
--source grant.inc |
|||
|
|||
let $TABLE_OPTIONS=TABLE_TYPE=DBF; |
|||
let $FILE_EXT=DBF; |
|||
--source grant.inc |
|||
|
|||
let $TABLE_OPTIONS=TABLE_TYPE=FIX; |
|||
let $FILE_EXT=FIX; |
|||
--source grant.inc |
|||
|
|||
let $TABLE_OPTIONS=TABLE_TYPE=VEC MAX_ROWS=100; |
|||
let $FILE_EXT=VEC; |
|||
--source grant.inc |
|||
|
|||
|
|||
@ -0,0 +1,79 @@ |
|||
-- source include/not_embedded.inc |
|||
|
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
--echo # |
|||
--echo # Checking FILE privileges |
|||
--echo # |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
--connect(user,localhost,user,,) |
|||
--connection user |
|||
SELECT user(); |
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=INI; |
|||
INSERT INTO t1 VALUES ('sec1','val1'); |
|||
SELECT * FROM t1; |
|||
UPDATE t1 SET val='val11'; |
|||
SELECT * FROM t1; |
|||
DELETE FROM t1; |
|||
SELECT * FROM t1; |
|||
INSERT INTO t1 VALUES('sec2','val2'); |
|||
TRUNCATE TABLE t1; |
|||
SELECT * FROM t1; |
|||
CREATE VIEW v1 AS SELECT * FROM t1; |
|||
SELECT * FROM v1; |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
# Making sure DROP erased the data file |
|||
--error 1 |
|||
--remove_file $MYSQLD_DATADIR/test/t1.ini |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.EXT'; |
|||
--connection default |
|||
SELECT user(); |
|||
CREATE TABLE t1 (sec CHAR(10) NOT NULL FLAG=1, val CHAR(10) NOT NULL) ENGINE=CONNECT TABLE_TYPE=INI FILE_NAME='t1.EXT'; |
|||
INSERT INTO t1 VALUES ('sec1','val1'); |
|||
--connection user |
|||
SELECT user(); |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
INSERT INTO t1 VALUES ('sec2','val2'); |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
SELECT * FROM t1; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
UPDATE t1 SET val='val11'; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
DELETE FROM t1; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
TRUNCATE TABLE t1; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
ALTER TABLE t1 READONLY=1; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
DROP TABLE t1; |
|||
--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 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 ('sec3','val3'); |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
UPDATE v1 SET val='val11'; |
|||
--error ER_ACCESS_DENIED_ERROR |
|||
DELETE FROM v1; |
|||
--disconnect user |
|||
--connection default |
|||
DROP VIEW v1; |
|||
DROP TABLE t1; |
|||
--remove_file $MYSQLD_DATADIR/test/t1.EXT |
|||
DROP USER user@localhost; |
|||
|
|||
--echo # |
|||
--echo # Checking FILE privileges: done |
|||
--echo # |
|||
|
|||
|
|||
@ -0,0 +1,78 @@ |
|||
-- 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='t1' 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 # |
|||
GRANT ALL PRIVILEGES ON *.* TO user@localhost; |
|||
REVOKE FILE ON *.* FROM user@localhost; |
|||
--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 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 # |
|||
|
|||
@ -0,0 +1,23 @@ |
|||
-- source include/not_embedded.inc |
|||
|
|||
--disable_query_log |
|||
--error 0,ER_UNKNOWN_ERROR |
|||
CREATE TABLE t1 (a VARCHAR(10)) |
|||
ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=libxml2'; |
|||
if (!`SELECT count(*) FROM INFORMATION_SCHEMA.TABLES |
|||
WHERE TABLE_SCHEMA='test' AND TABLE_NAME='t1' |
|||
AND ENGINE='CONNECT' |
|||
AND CREATE_OPTIONS LIKE '%`table_type`=XML%' |
|||
AND CREATE_OPTIONS LIKE '%xmlsup=libxml2%'`) |
|||
{ |
|||
Skip Need LIBXML2; |
|||
} |
|||
DROP TABLE t1; |
|||
--enable_query_log |
|||
|
|||
|
|||
let $MYSQLD_DATADIR= `select @@datadir`; |
|||
|
|||
let $TABLE_OPTIONS=TABLE_TYPE=XML OPTION_LIST='xmlsup=libxml2,rownode=row'; |
|||
let $FILE_EXT=XML; |
|||
--source grant.inc |
|||
Write
Preview
Loading…
Cancel
Save
Reference in new issue