summaryrefslogtreecommitdiff
path: root/storage/connect/mysql-test/connect/t/grant.test
blob: 909bb4117a1fb04d707db5cc75358cef7b02e321 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
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