summaryrefslogtreecommitdiff
path: root/mysql-test/main/grant_cache_ps_prot.result
blob: 0fde04ac0f33b6d73c4afdcba422c5e5189b67f4 (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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
set @save_query_cache_size=@@global.query_cache_size;
set @save_sql_mode=@@global.sql_mode;
set @save_query_cache_type=@@global.query_cache_type;
set GLOBAL sql_mode="";
set LOCAL sql_mode="";
drop table if exists test.t1,mysqltest.t1,mysqltest.t2;
drop database if exists mysqltest;
set GLOBAL query_cache_type=ON;
set LOCAL query_cache_type=ON;
set GLOBAL query_cache_size=1355776;
reset query cache;
flush status;
connect  root,localhost,root,,test,$MASTER_MYPORT,$MASTER_MYSOCK;
connection root;
show grants for current_user;
Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
show grants;
Grants for root@localhost
GRANT ALL PRIVILEGES ON *.* TO `root`@`localhost` WITH GRANT OPTION
GRANT PROXY ON ''@'%' TO 'root'@'localhost' WITH GRANT OPTION
create database if not exists mysqltest;
create table mysqltest.t1 (a int,b int,c int);
create table mysqltest.t2 (a int,b int,c int);
insert into mysqltest.t1 values (1,1,1),(2,2,2);
insert into mysqltest.t2 values (3,3,3);
create table test.t1 (a char (10));
insert into test.t1 values ("test.t1");
select * from t1;
a
test.t1
connect  root2,localhost,root,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection root2;
select * from t1;
a	b	c
1	1	1
2	2	2
select a from t1;
a
1
2
select c from t1;
c
1
2
select * from t2;
a	b	c
3	3	3
select * from mysqltest.t1,test.t1;
a	b	c	a
1	1	1	test.t1
2	2	2	test.t1
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	6
show status like "Qcache_hits%";
Variable_name	Value
Qcache_hits	0
grant SELECT on mysqltest.* to mysqltest_1@localhost;
grant SELECT on test.t1 to mysqltest_1@localhost;
grant SELECT on mysqltest.t1 to mysqltest_2@localhost;
grant SELECT on test.t1 to mysqltest_2@localhost;
grant SELECT(a) on mysqltest.t1 to mysqltest_3@localhost;
grant SELECT(a) on test.t1 to mysqltest_3@localhost;
connect  user1,localhost,mysqltest_1,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user1;
show grants for current_user();
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `test`.`t1` TO `mysqltest_1`@`localhost`
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	6
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	0
show status like "Qcache_not_cached";
Variable_name	Value
Qcache_not_cached	0
select "user1";
user1
user1
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	6
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	0
show status like "Qcache_not_cached";
Variable_name	Value
Qcache_not_cached	1
select * from t1;
a	b	c
1	1	1
2	2	2
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	6
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	1
show status like "Qcache_not_cached";
Variable_name	Value
Qcache_not_cached	1
select a from t1 ;
a
1
2
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	6
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	2
show status like "Qcache_not_cached";
Variable_name	Value
Qcache_not_cached	1
select c from t1;
c
1
2
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	6
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	3
show status like "Qcache_not_cached";
Variable_name	Value
Qcache_not_cached	1
connect  unkuser,localhost,unkuser,,"*NO-ONE*",$MASTER_MYPORT,$MASTER_MYSOCK;
connection unkuser;
show grants for current_user();
Grants for @localhost
GRANT USAGE ON *.* TO ``@`localhost`
connect  user2,localhost,mysqltest_2,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user2;
select "user2";
user2
user2
select * from t1;
a	b	c
1	1	1
2	2	2
select a from t1;
a
1
2
select c from t1;
c
1
2
select * from mysqltest.t1,test.t1;
a	b	c	a
1	1	1	test.t1
2	2	2	test.t1
select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_2'@'localhost' for table `mysqltest`.`t2`
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	6
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	7
show status like "Qcache_not_cached";
Variable_name	Value
Qcache_not_cached	2
connect  user3,localhost,mysqltest_3,,mysqltest,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user3;
select "user3";
user3
user3
select * from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t1`
select a from t1;
a
1
2
select c from t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
select * from t2;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for table `mysqltest`.`t2`
select mysqltest.t1.c from test.t1,mysqltest.t1;
ERROR 42000: SELECT command denied to user 'mysqltest_3'@'localhost' for column 'c' in table 't1'
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	6
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	7
show status like "Qcache_not_cached";
Variable_name	Value
Qcache_not_cached	3
connect  user4,localhost,mysqltest_1,,*NO-ONE*,$MASTER_MYPORT,$MASTER_MYSOCK;
connection user4;
select "user4";
user4
user4
show grants;
Grants for mysqltest_1@localhost
GRANT USAGE ON *.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `mysqltest`.* TO `mysqltest_1`@`localhost`
GRANT SELECT ON `test`.`t1` TO `mysqltest_1`@`localhost`
select a from t1;
ERROR 3D000: No database selected
select * from mysqltest.t1,test.t1;
a	b	c	a
1	1	1	test.t1
2	2	2	test.t1
select a from mysqltest.t1;
a
1
2
select a from mysqltest.t1;
a
1
2
show status like "Qcache_queries_in_cache";
Variable_name	Value
Qcache_queries_in_cache	8
show status like "Qcache_hits";
Variable_name	Value
Qcache_hits	8
show status like "Qcache_not_cached";
Variable_name	Value
Qcache_not_cached	4
connection root;
disconnect root;
connection root2;
disconnect root2;
connection user1;
disconnect user1;
connection user2;
disconnect user2;
connection user3;
disconnect user3;
connection user4;
disconnect user4;
connection unkuser;
disconnect unkuser;
connection default;
set names binary;
delete from mysql.user where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.db where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.tables_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
delete from mysql.columns_priv where user in ("mysqltest_1","mysqltest_2","mysqltest_3");
flush privileges;
drop table test.t1,mysqltest.t1,mysqltest.t2;
drop database mysqltest;
set GLOBAL query_cache_type=ON;
set LOCAL query_cache_type=ON;
set GLOBAL query_cache_size=@save_query_cache_size;
set GLOBAL sql_mode=@save_sql_mode;
set GLOBAL query_cache_type=@save_query_cache_type;