mirror of
https://github.com/MariaDB/server.git
synced 2025-12-09 05:45:42 +01:00
89 lines
3 KiB
Text
89 lines
3 KiB
Text
#
|
|
# Checking FILE privileges
|
|
#
|
|
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();
|
|
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 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 (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();
|
|
user()
|
|
user@localhost
|
|
INSERT INTO t1 VALUES ('sec2','val2');
|
|
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 val='val11';
|
|
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
|
|
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 ('sec3','val3');
|
|
ERROR 42000: Access denied; you need (at least one of) the FILE privilege(s) for this operation
|
|
UPDATE v1 SET val='val11';
|
|
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;
|
|
DROP VIEW v1;
|
|
DROP TABLE t1;
|
|
DROP USER user@localhost;
|
|
#
|
|
# Checking FILE privileges: done
|
|
#
|