mirror of
https://github.com/MariaDB/server.git
synced 2026-02-23 11:08:40 +01:00
604 lines
19 KiB
Text
604 lines
19 KiB
Text
set sql_mode="";
|
|
#
|
|
# Testing FILE privilege
|
|
#
|
|
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 (
|
|
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 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 (
|
|
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='*.*' CHARSET=latin1;
|
|
SELECT fname, ftype, size FROM t1 WHERE size>0 AND ftype!='.opt';
|
|
fname ftype size
|
|
t1 .frm 1081
|
|
connection user;
|
|
SELECT user();
|
|
user()
|
|
user@localhost
|
|
SELECT * FROM t1;
|
|
ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation
|
|
INSERT INTO t1 VALUES ();
|
|
ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation
|
|
DELETE FROM t1 WHERE path='xxx';
|
|
ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation
|
|
UPDATE t1 SET path='yyy' WHERE path='xxx';
|
|
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
|
|
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 (1,1,1,1);
|
|
ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation
|
|
UPDATE v1 SET path=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
|
|
disconnect user;
|
|
connection default;
|
|
SELECT user();
|
|
user()
|
|
root@localhost
|
|
DROP VIEW v1;
|
|
DROP TABLE t1;
|
|
DROP USER user@localhost;
|
|
#
|
|
# Testing FILE privileges done
|
|
#
|
|
#
|
|
# 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=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 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=BIN 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=BIN;
|
|
Warnings:
|
|
Warning 1105 No file name. Table will use t1.bin
|
|
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
|
|
#
|
|
#
|
|
# 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=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 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=CSV 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=CSV;
|
|
Warnings:
|
|
Warning 1105 No file name. Table will use t1.csv
|
|
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
|
|
#
|
|
#
|
|
# 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=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 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=DBF 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=DBF;
|
|
Warnings:
|
|
Warning 1105 No file name. Table will use t1.dbf
|
|
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
|
|
#
|
|
#
|
|
# 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=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 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=FIX 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=FIX;
|
|
Warnings:
|
|
Warning 1105 No file name. Table will use t1.fix
|
|
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
|
|
#
|
|
#
|
|
# 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=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 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=VEC MAX_ROWS=100 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=VEC MAX_ROWS=100;
|
|
Warnings:
|
|
Warning 1105 No file name. Table will use t1.vec
|
|
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
|
|
#
|
|
set sql_mode=default;
|