1# Tests for WL#12217
2
3# Because of transaction_write_set_extraction not being settable
4# with other binlog formats.
5--source include/have_binlog_format_row.inc
6
7# Save the initial number of concurrent sessions
8--source include/count_sessions.inc
9
10
11--echo # Testing FR2
12
13--echo Must have SESSION_VARIABLES_ADMIN with grant option
14SHOW GRANTS FOR root@localhost;
15
16--echo # Testing FR1
17
18CREATE USER wl12217@localhost;
19CREATE DATABASE wl12217;
20GRANT ALL PRIVILEGES ON wl12217.* TO wl12217@localhost;
21
22--echo # Must work
23GRANT SESSION_VARIABLES_ADMIN ON *.* TO wl12217@localhost;
24--echo # Must work again
25GRANT SESSION_VARIABLES_ADMIN ON *.* TO wl12217@localhost;
26--echo # Must fail
27--error ER_ILLEGAL_PRIVILEGE_LEVEL
28GRANT SESSION_VARIABLES_ADMIN ON mysql.* TO wl12217@localhost;
29
30--echo # Cleanup
31DROP DATABASE wl12217;
32DROP USER wl12217@localhost;
33
34
35--echo # Testing FR3, FR4
36
37CREATE USER wl12217@localhost;
38CREATE DATABASE wl12217;
39GRANT ALL PRIVILEGES ON wl12217.* TO wl12217@localhost;
40--echo # Switch to wl12217@localhost
41connect(confr3,localhost,wl12217,,wl12217);
42
43--echo # Must fail
44--error ER_SPECIFIC_ACCESS_DENIED_ERROR
45SET SESSION binlog_direct_non_transactional_updates = DEFAULT;
46--error ER_SPECIFIC_ACCESS_DENIED_ERROR
47SET SESSION binlog_format = DEFAULT;
48--error ER_SPECIFIC_ACCESS_DENIED_ERROR
49SET SESSION binlog_row_image = DEFAULT;
50--error ER_SPECIFIC_ACCESS_DENIED_ERROR
51SET SESSION binlog_row_value_options = DEFAULT;
52--error ER_SPECIFIC_ACCESS_DENIED_ERROR
53SET SESSION binlog_rows_query_log_events = DEFAULT;
54--error ER_SPECIFIC_ACCESS_DENIED_ERROR
55SET SESSION bulk_insert_buffer_size = DEFAULT;
56--error ER_SPECIFIC_ACCESS_DENIED_ERROR
57SET SESSION character_set_database = DEFAULT;
58--error ER_SPECIFIC_ACCESS_DENIED_ERROR
59SET SESSION character_set_filesystem = DEFAULT;
60--error ER_SPECIFIC_ACCESS_DENIED_ERROR
61SET SESSION pseudo_slave_mode = DEFAULT;
62--error ER_SPECIFIC_ACCESS_DENIED_ERROR
63SET SESSION pseudo_thread_id = DEFAULT;
64--error ER_SPECIFIC_ACCESS_DENIED_ERROR
65SET SESSION transaction_write_set_extraction = DEFAULT;
66--error ER_SPECIFIC_ACCESS_DENIED_ERROR
67SET SESSION histogram_generation_max_mem_size = DEFAULT;
68--error ER_SPECIFIC_ACCESS_DENIED_ERROR
69SET SESSION sql_log_off = DEFAULT;
70--error ER_SPECIFIC_ACCESS_DENIED_ERROR
71SET SESSION original_commit_timestamp = DEFAULT;
72--error ER_SPECIFIC_ACCESS_DENIED_ERROR
73SET SESSION sql_log_bin = DEFAULT;
74
75--echo # Back to default connection
76connection default;
77disconnect confr3;
78GRANT SESSION_VARIABLES_ADMIN ON *.* TO wl12217@localhost;
79--echo # Back to wl12217@localhost
80connect(confr3,localhost,wl12217,,wl12217);
81
82--echo # Must pass
83SET SESSION auto_increment_increment = DEFAULT;
84SET SESSION auto_increment_offset = DEFAULT;
85SET SESSION binlog_direct_non_transactional_updates = DEFAULT;
86SET SESSION binlog_format = DEFAULT;
87SET SESSION binlog_row_image = DEFAULT;
88SET SESSION binlog_row_value_options = DEFAULT;
89SET SESSION binlog_rows_query_log_events = DEFAULT;
90SET SESSION bulk_insert_buffer_size = DEFAULT;
91SET SESSION character_set_database = DEFAULT;
92SET SESSION character_set_filesystem = DEFAULT;
93SET SESSION collation_database = DEFAULT;
94SET SESSION pseudo_slave_mode = DEFAULT;
95SET SESSION pseudo_thread_id = DEFAULT;
96SET SESSION transaction_write_set_extraction = DEFAULT;
97SET SESSION histogram_generation_max_mem_size = DEFAULT;
98SET SESSION sql_log_off = DEFAULT;
99SET SESSION original_commit_timestamp = DEFAULT;
100SET SESSION default_collation_for_utf8mb4 = DEFAULT;
101SET SESSION explicit_defaults_for_timestamp = DEFAULT;
102SET SESSION sql_log_bin = DEFAULT;
103SET SESSION rbr_exec_mode = DEFAULT;
104
105--echo # Back to default connection
106connection default;
107disconnect confr3;
108
109--echo # Cleanup
110DROP DATABASE wl12217;
111DROP USER wl12217@localhost;
112
113
114--echo #  Testing FR5
115
116CREATE USER wl12217@localhost;
117CREATE DATABASE wl12217;
118GRANT ALL PRIVILEGES ON wl12217.* TO wl12217@localhost;
119GRANT SYSTEM_VARIABLES_ADMIN ON *.* TO wl12217@localhost;
120
121--echo # Switch to wl12217@localhost
122connect(confr5,localhost,wl12217,,wl12217);
123
124--echo # Must pass
125SET SESSION auto_increment_increment = DEFAULT;
126SET SESSION auto_increment_offset = DEFAULT;
127SET SESSION binlog_direct_non_transactional_updates = DEFAULT;
128SET SESSION binlog_format = DEFAULT;
129SET SESSION binlog_row_image = DEFAULT;
130SET SESSION binlog_row_value_options = DEFAULT;
131SET SESSION binlog_rows_query_log_events = DEFAULT;
132SET SESSION bulk_insert_buffer_size = DEFAULT;
133SET SESSION character_set_database = DEFAULT;
134SET SESSION character_set_filesystem = DEFAULT;
135SET SESSION collation_database = DEFAULT;
136SET SESSION pseudo_slave_mode = DEFAULT;
137SET SESSION pseudo_thread_id = DEFAULT;
138SET SESSION transaction_write_set_extraction = DEFAULT;
139SET SESSION histogram_generation_max_mem_size = DEFAULT;
140SET SESSION sql_log_off = DEFAULT;
141SET SESSION original_commit_timestamp = DEFAULT;
142SET SESSION default_collation_for_utf8mb4 = DEFAULT;
143SET SESSION explicit_defaults_for_timestamp = DEFAULT;
144SET SESSION sql_log_bin = DEFAULT;
145SET SESSION rbr_exec_mode = DEFAULT;
146
147--echo # Back to default connection
148connection default;
149disconnect confr5;
150
151--echo # Cleanup
152DROP DATABASE wl12217;
153DROP USER wl12217@localhost;
154
155
156--echo #  Testing FR6
157
158CREATE USER wl12217@localhost;
159CREATE DATABASE wl12217;
160GRANT ALL PRIVILEGES ON wl12217.* TO wl12217@localhost;
161GRANT SUPER ON *.* TO wl12217@localhost;
162
163--echo # Switch to wl12217@localhost
164connect(confr5,localhost,wl12217,,wl12217);
165
166--echo # Must pass
167SET SESSION auto_increment_increment = DEFAULT;
168SET SESSION auto_increment_offset = DEFAULT;
169SET SESSION binlog_direct_non_transactional_updates = DEFAULT;
170SET SESSION binlog_format = DEFAULT;
171SET SESSION binlog_row_image = DEFAULT;
172SET SESSION binlog_row_value_options = DEFAULT;
173SET SESSION binlog_rows_query_log_events = DEFAULT;
174SET SESSION bulk_insert_buffer_size = DEFAULT;
175SET SESSION character_set_database = DEFAULT;
176SET SESSION character_set_filesystem = DEFAULT;
177SET SESSION collation_database = DEFAULT;
178SET SESSION pseudo_slave_mode = DEFAULT;
179SET SESSION pseudo_thread_id = DEFAULT;
180SET SESSION transaction_write_set_extraction = DEFAULT;
181SET SESSION histogram_generation_max_mem_size = DEFAULT;
182SET SESSION sql_log_off = DEFAULT;
183SET SESSION original_commit_timestamp = DEFAULT;
184SET SESSION default_collation_for_utf8mb4 = DEFAULT;
185SET SESSION explicit_defaults_for_timestamp = DEFAULT;
186SET SESSION sql_log_bin = DEFAULT;
187SET SESSION rbr_exec_mode = DEFAULT;
188
189--echo # Back to default connection
190connection default;
191disconnect confr5;
192
193--echo # Cleanup
194DROP DATABASE wl12217;
195DROP USER wl12217@localhost;
196
197
198--echo # Testing FR7
199
200--echo # Must have SESSION_VARIABLES_ADMIN
201SHOW GRANTS for "mysql.session"@localhost;
202
203
204--echo #
205--echo # End of 8.0 tests
206--echo #
207
208
209# Wait till all disconnects are completed
210--source include/wait_until_count_sessions.inc
211
212