~ubuntu-branches/ubuntu/natty/mysql-5.1/natty-proposed

« back to all changes in this revision

Viewing changes to mysql-test/suite/rpl/t/rpl_current_user.test

  • Committer: Package Import Robot
  • Author(s): Marc Deslauriers
  • Date: 2012-02-22 08:30:45 UTC
  • mfrom: (1.4.1)
  • Revision ID: package-import@ubuntu.com-20120222083045-2rd53r4bnyx7qus4
Tags: 5.1.61-0ubuntu0.11.04.1
* SECURITY UPDATE: Update to 5.1.61 to fix multiple security issues
  (LP: #937869)
  - http://www.oracle.com/technetwork/topics/security/cpujan2012-366304.html
  - CVE-2011-2262
  - CVE-2012-0075
  - CVE-2012-0112
  - CVE-2012-0113
  - CVE-2012-0114
  - CVE-2012-0115
  - CVE-2012-0116
  - CVE-2012-0117
  - CVE-2012-0118
  - CVE-2012-0119
  - CVE-2012-0120
  - CVE-2012-0484
  - CVE-2012-0485
  - CVE-2012-0486
  - CVE-2012-0487
  - CVE-2012-0488
  - CVE-2012-0489
  - CVE-2012-0490
  - CVE-2012-0491
  - CVE-2012-0492
  - CVE-2012-0493
  - CVE-2012-0494
  - CVE-2012-0495
  - CVE-2012-0496

Show diffs side-by-side

added added

removed removed

Lines of Context:
10
10
# 'ALTER EVENT'.
11
11
#
12
12
##############################################################################
13
 
source include/master-slave.inc;
 
13
 
14
14
source include/have_binlog_format_statement.inc;
15
15
 
16
 
--echo
17
 
--echo # On slave2
18
 
connect (slave2,127.0.0.1,root,,test,$SLAVE_MYPORT1,);
19
 
connection slave2;
20
 
 
21
 
--echo # Connect slave2 to slave
22
 
--replace_result $SLAVE_MYPORT SLAVE_MYPORT;
23
 
eval CHANGE MASTER TO MASTER_HOST='127.0.0.1', MASTER_PORT=$SLAVE_MYPORT,
24
 
     MASTER_LOG_FILE='slave-bin.000001', MASTER_USER='root';
25
 
START SLAVE;
26
 
source include/wait_for_slave_to_start.inc;
27
 
 
28
 
--echo
29
 
--echo # [On master]
30
 
connection master;
31
 
--disable_warnings
32
 
DROP VIEW IF EXISTS v_user;
33
 
DROP VIEW IF EXISTS v_tables_priv;
34
 
DROP VIEW IF EXISTS v_procs_priv;
35
 
DROP PROCEDURE IF EXISTS p1;
36
 
DROP PROCEDURE IF EXISTS my_grant;
37
 
DROP PROCEDURE IF EXISTS my_revoke;
38
 
DROP FUNCTION IF EXISTS my_user;
39
 
DROP EVENT IF EXISTS e1;
40
 
--enable_warnings
 
16
--let $rpl_topology= 1->2->3
 
17
--source include/rpl_init.inc
 
18
 
 
19
--let $rpl_connection_name= master
 
20
--let $rpl_server_number= 1
 
21
--source include/rpl_connect.inc
 
22
 
 
23
--let $rpl_connection_name= slave
 
24
--let $rpl_server_number= 2
 
25
--source include/rpl_connect.inc
 
26
 
 
27
--connection master
 
28
 
41
29
CREATE TABLE t1(c1 char(100));
42
30
CREATE VIEW test.v_user AS SELECT * FROM mysql.user WHERE User LIKE 'bug48321%';
43
31
CREATE VIEW test.v_tables_priv AS SELECT * FROM mysql.tables_priv WHERE User LIKE 'bug48321%';
63
51
--echo # [On conn1]
64
52
--echo # Verify 'REVOKE ALL' statement
65
53
REVOKE ALL PRIVILEGES, GRANT OPTION FROM CURRENT_USER();
66
 
let $diff_table= test.v_user;
67
 
let $diff_server_list= master, slave, slave2;
68
 
source include/rpl_diff_tables.inc;
 
54
--source include/rpl_sync.inc
 
55
let $diff_tables= server_1:v_user, server_2:v_user, server_3:v_user;
 
56
source include/diff_tables.inc;
69
57
 
70
58
--echo 
71
59
--echo # Verify 'GRANT ... ON TABLE ...' statement
72
 
connection conn1;
73
60
GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
74
 
let $diff_table= test.v_tables_priv;
75
 
source include/rpl_diff_tables.inc;
 
61
--source include/rpl_sync.inc
 
62
let $diff_tables= server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv;
 
63
source include/diff_tables.inc;
76
64
 
77
65
--echo 
78
66
--echo # Verify 'GRANT ... ON PROCEDURE...' statement
79
 
connection conn1;
80
67
GRANT ALTER ROUTINE, EXECUTE ON PROCEDURE p1 TO CURRENT_USER();
81
 
let $diff_table= test.v_procs_priv;
82
 
source include/rpl_diff_tables.inc;
 
68
--source include/rpl_sync.inc
 
69
let $diff_tables= server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv;
 
70
source include/diff_tables.inc;
83
71
 
84
72
--echo 
85
73
--echo # Verify 'GRANT ... ON *.* ...' statement
86
 
connection conn1;
87
74
GRANT ALL PRIVILEGES ON *.* TO CURRENT_USER() WITH GRANT OPTION;
88
 
source include/rpl_diff_tables.inc;
 
75
--source include/rpl_sync.inc
 
76
let $diff_tables= server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv;
 
77
source include/diff_tables.inc;
89
78
 
90
79
--echo 
91
80
--echo # Verify 'REVOKE ... ON TABLE ...' statement
92
 
connection conn1;
93
81
REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
94
 
let $diff_table= test.v_tables_priv;
95
 
source include/rpl_diff_tables.inc;
 
82
--source include/rpl_sync.inc
 
83
let $diff_tables= server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv;
 
84
source include/diff_tables.inc;
96
85
 
97
86
--echo 
98
87
--echo # Verify 'REVOKE ... ON PROCEDURE...' statement
99
 
connection conn1;
100
88
REVOKE ALTER ROUTINE, EXECUTE ON PROCEDURE p1 FROM CURRENT_USER();
101
 
let $diff_table= test.v_procs_priv;
102
 
source include/rpl_diff_tables.inc;
 
89
--source include/rpl_sync.inc
 
90
let $diff_tables= server_1:v_procs_priv, server_2:v_procs_priv, server_3:v_procs_priv;
 
91
source include/diff_tables.inc;
103
92
 
104
93
--echo 
105
94
--echo # Verify 'REVOKE ... ON *.* ...' statement
106
 
connection conn1;
107
95
REVOKE ALL PRIVILEGES ON *.* FROM CURRENT_USER();
108
 
let $diff_table= test.v_user;
109
 
source include/rpl_diff_tables.inc;
 
96
--source include/rpl_sync.inc
 
97
let $diff_tables= server_1:v_user, server_2:v_user, server_3:v_user;
 
98
source include/diff_tables.inc;
110
99
 
111
100
--echo 
112
101
--echo # Verify 'GRANT ...' statement in the procedure
113
 
connection conn1;
114
102
CREATE PROCEDURE my_grant()
115
103
  GRANT CREATE, INSERT, SELECT ON TABLE test.t1 TO CURRENT_USER();
116
104
call my_grant;
117
 
let $diff_table= test.v_tables_priv;
118
 
source include/rpl_diff_tables.inc;
 
105
--source include/rpl_sync.inc
 
106
let $diff_tables= server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv;
 
107
source include/diff_tables.inc;
119
108
 
120
109
--echo 
121
110
--echo # Verify 'REVOKE ... ON TABLE ...' statement in the procedure
122
 
connection conn1;
123
111
CREATE PROCEDURE my_revoke()
124
112
  REVOKE CREATE, INSERT, SELECT ON TABLE t1 FROM CURRENT_USER();
125
113
call my_revoke;
126
 
let $diff_table= test.v_tables_priv;
127
 
source include/rpl_diff_tables.inc;
 
114
--source include/rpl_sync.inc
 
115
let $diff_tables= server_1:v_tables_priv, server_2:v_tables_priv, server_3:v_tables_priv;
 
116
source include/diff_tables.inc;
128
117
 
129
118
--echo 
130
119
--echo # Verify 'RENAME USER ...' statement
131
 
connection conn1;
132
120
RENAME USER CURRENT_USER TO 'bug48321_2'@'localhost';
133
 
let $diff_table= test.v_user;
134
 
source include/rpl_diff_tables.inc;
 
121
--source include/rpl_sync.inc
 
122
let $diff_tables= server_1:v_user, server_2:v_user, server_3:v_user;
 
123
source include/diff_tables.inc;
135
124
 
136
125
disconnect conn1;
137
126
 
142
131
connect (conn1, 127.0.0.1, 'bug48321_2'@'localhost',,);
143
132
connection conn1;
144
133
DROP USER CURRENT_USER();
145
 
source include/rpl_diff_tables.inc;
 
134
--source include/rpl_sync.inc
 
135
let $diff_tables= server_1:v_user, server_2:v_user, server_3:v_user;
 
136
source include/diff_tables.inc;
146
137
 
147
138
--echo 
148
139
--echo # Verify 'ALTER EVENT...' statement
151
142
 
152
143
--echo # Explicitly assign CURRENT_USER() to definer
153
144
ALTER DEFINER=CURRENT_USER() EVENT e1 ENABLE;
154
 
let $diff_table= test.v_event;
155
 
source include/rpl_diff_tables.inc;
 
145
--source include/rpl_sync.inc
 
146
let $diff_tables= server_1:v_event, server_2:v_event, server_3:v_event;
 
147
source include/diff_tables.inc;
156
148
 
157
 
connection master;
158
149
--echo
159
150
--echo # Session user will be set as definer, if the statement does not assign
160
151
--echo # a definer
161
152
ALTER EVENT e1 ENABLE;
162
 
sync_slave_with_master;
163
 
source include/rpl_diff_tables.inc;
 
153
--source include/rpl_sync.inc
 
154
let $diff_tables= server_1:v_event, server_2:v_event, server_3:v_event;
 
155
source include/diff_tables.inc;
164
156
 
165
157
--echo
166
158
--echo # Verify that this patch does not affect the calling of CURRENT_USER() 
172
164
sync_slave_with_master;
173
165
--echo # [On slave]
174
166
SELECT * FROM t1;
175
 
--echo # [On slave2]
176
 
sync_slave_with_master slave2;
 
167
--echo # [On server_3]
 
168
sync_slave_with_master server_3;
177
169
SELECT * FROM t1;
178
170
 
179
171
connection master;
183
175
sync_slave_with_master;
184
176
--echo # [On slave]
185
177
SELECT * FROM t1;
186
 
sync_slave_with_master slave2;
187
 
--echo # [On slave2]
 
178
sync_slave_with_master server_3;
 
179
--echo # [On server_3]
188
180
SELECT * FROM t1;
189
181
 
190
182
connection master;
194
186
sync_slave_with_master;
195
187
--echo # [On slave]
196
188
SELECT * FROM t1;
197
 
sync_slave_with_master slave2;
198
 
--echo # [On slave2]
 
189
sync_slave_with_master server_3;
 
190
--echo # [On server_3]
199
191
SELECT * FROM t1;
200
192
 
201
193
connection master;
218
210
--echo # [On slave]
219
211
SELECT * FROM t1;
220
212
SELECT * FROM t2;
221
 
sync_slave_with_master slave2;
222
 
--echo # [On slave2]
 
213
sync_slave_with_master server_3;
 
214
--echo # [On server_3]
223
215
SELECT * FROM t1;
224
216
SELECT * FROM t2;
225
217
 
233
225
DROP PROCEDURE my_revoke;
234
226
DROP FUNCTION my_user;
235
227
DROP EVENT e1;
236
 
sync_slave_with_master;
237
 
sync_slave_with_master slave2;
238
 
source include/master-slave-end.inc;
 
228
--source include/rpl_end.inc
 
229