summaryrefslogtreecommitdiff
path: root/mysql-test/suite/perfschema/include/privilege.inc
blob: f01511b6fc8c3e6a0f178fa39e4d7e9542503918 (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
# Tests for PERFORMANCE_SCHEMA

--disable_warnings
drop table if exists test.t1;
--enable_warnings

## The result of show grants is not consistent across platforms ...
## show grants;

## Not enforced yet: deny CREATE_ACL and DROP_ACL
## Waiting to remove .FRM files first
##
## --error ER_DBACCESS_DENIED_ERROR
## create table performance_schema.t1(a int);
##
## --error ER_DBACCESS_DENIED_ERROR
## drop table performance_schema.t1;
##
## --error ER_DBACCESS_DENIED_ERROR
## create table performance_schema.setup_instruments(a int);
##
## --error ER_DBACCESS_DENIED_ERROR
## create table performance_schema.events_waits_current(a int);
##
## --error ER_DBACCESS_DENIED_ERROR
## create table performance_schema.file_instances(a int);
##
## --error ER_DBACCESS_DENIED_ERROR
## drop table performance_schema.setup_instruments;
##
## --error ER_DBACCESS_DENIED_ERROR
## drop table performance_schema.events_waits_current;
##
## --error ER_DBACCESS_DENIED_ERROR
## drop table performance_schema.file_instances;

--error ER_DBACCESS_DENIED_ERROR
rename table performance_schema.setup_instruments to test.t1;

--error ER_DBACCESS_DENIED_ERROR
rename table performance_schema.events_waits_current to test.t1;

--error ER_DBACCESS_DENIED_ERROR
rename table performance_schema.file_instances to test.t1;

--error ER_DBACCESS_DENIED_ERROR
rename table performance_schema.setup_instruments to performance_schema.t1;

--error ER_DBACCESS_DENIED_ERROR
rename table performance_schema.events_waits_current to performance_schema.t1;

--error ER_DBACCESS_DENIED_ERROR
rename table performance_schema.file_instances to performance_schema.t1;

--error ER_DBACCESS_DENIED_ERROR
rename table performance_schema.setup_instruments
  to performance_schema.events_waits_current;

--error ER_DBACCESS_DENIED_ERROR
rename table performance_schema.events_waits_current
  to performance_schema.setup_instruments;

--error ER_DBACCESS_DENIED_ERROR
create procedure performance_schema.my_proc() begin end;

--error ER_DBACCESS_DENIED_ERROR
create function performance_schema.my_func() returns int return 0;

--error ER_DBACCESS_DENIED_ERROR
create event performance_schema.my_event on schedule every 15 minute
do begin end;

--error ER_DBACCESS_DENIED_ERROR
create trigger performance_schema.bi_setup_instruments
  before insert on performance_schema.setup_instruments
  for each row begin end;

--error ER_DBACCESS_DENIED_ERROR
create trigger performance_schema.bi_events_waits_current
  before insert on performance_schema.events_waits_current
  for each row begin end;

--error ER_DBACCESS_DENIED_ERROR
create trigger performance_schema.bi_file_instances
  before insert on performance_schema.file_instances
  for each row begin end;

--error ER_CANT_CREATE_TABLE
create table test.t1(a int) engine=PERFORMANCE_SCHEMA;

--error ER_CANT_CREATE_TABLE
create table test.t1 like performance_schema.setup_instruments;

--error ER_CANT_CREATE_TABLE
create table test.t1 like performance_schema.events_waits_current;

--error ER_CANT_CREATE_TABLE
create table test.t1 like performance_schema.file_instances;

--error ER_TABLEACCESS_DENIED_ERROR
insert into performance_schema.setup_instruments
  set name="foo";

--error ER_TABLEACCESS_DENIED_ERROR
insert into performance_schema.events_waits_current
  set name="foo";

--error ER_TABLEACCESS_DENIED_ERROR
insert into performance_schema.file_instances
  set name="foo";

--error ER_TABLEACCESS_DENIED_ERROR
delete from performance_schema.setup_instruments;

--error ER_TABLEACCESS_DENIED_ERROR
delete from performance_schema.events_waits_current;

--error ER_TABLEACCESS_DENIED_ERROR
delete from performance_schema.file_instances;

lock table performance_schema.setup_instruments read;
unlock tables;

lock table performance_schema.setup_instruments write;
unlock tables;

--error ER_TABLEACCESS_DENIED_ERROR
lock table performance_schema.events_waits_current read;
unlock tables;

--error ER_TABLEACCESS_DENIED_ERROR
lock table performance_schema.events_waits_current write;
unlock tables;

--error ER_TABLEACCESS_DENIED_ERROR
lock table performance_schema.file_instances read;
unlock tables;

--error ER_TABLEACCESS_DENIED_ERROR
lock table performance_schema.file_instances write;
unlock tables;

--echo #
--echo # WL#4818, NFS2: Can use grants to give normal user access
--echo #                to view data from _current and _history tables
--echo #
--echo # Should work as pfs_user_1 and pfs_user_2, but not as pfs_user_3.
--echo # (Except for events_waits_current, which is granted.)

# Errors here will be caught by the diff afterwards
--disable_abort_on_error

SELECT "can select" FROM performance_schema.events_waits_history LIMIT 1;

SELECT "can select" FROM performance_schema.events_waits_history_long LIMIT 1;

SELECT "can select" FROM performance_schema.events_waits_current LIMIT 1;

SELECT "can select" FROM performance_schema.events_waits_summary_by_instance LIMIT 1;

SELECT "can select" FROM performance_schema.file_summary_by_instance LIMIT 1;

--enable_abort_on_error