# # Beginning of grant.inc # CREATE USER user@localhost; GRANT ALL PRIVILEGES ON *.* TO user@localhost; REVOKE FILE ON *.* FROM user@localhost; connect user,localhost,user,,; connection user; SELECT user(); user() user@localhost CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=domdoc,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=domdoc,rownode=row' FILE_NAME='t1.EXT'; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; SELECT user(); user() root@localhost CREATE TABLE t1 (a INT NOT NULL) ENGINE=CONNECT TABLE_TYPE=XML OPTION_LIST='xmlsup=domdoc,rownode=row' FILE_NAME='t1.EXT'; INSERT INTO t1 VALUES (10); connection user; SELECT user(); user() user@localhost INSERT INTO t1 VALUES (10); ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation SELECT * FROM t1; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE t1 SET a=20; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM t1; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation TRUNCATE TABLE t1; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 READONLY=1; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation ALTER TABLE t1 FILE_NAME='t2.EXT'; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DROP TABLE t1; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation CREATE VIEW v1 AS SELECT * FROM t1; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation # Testing a VIEW created with FILE privileges but accessed with no FILE connection default; SELECT user(); user() root@localhost CREATE SQL SECURITY INVOKER VIEW v1 AS SELECT * FROM t1; connection user; SELECT user(); user() user@localhost SELECT * FROM v1; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation INSERT INTO v1 VALUES (2); ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation UPDATE v1 SET a=123; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation DELETE FROM v1; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; 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=domdoc,rownode=row'; Warnings: Warning 1105 No file name. Table will use t1.xml INSERT INTO t1 VALUES (10); connection user; SELECT user(); user() user@localhost ALTER TABLE t1 FILE_NAME='t1.EXT'; ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation connection default; DROP TABLE t1; disconnect user; DROP USER user@localhost; # # End of grant.inc #