Skip to content

Commit 7b7073a

Browse files
committed
WL#12007 Refactor the ACL DDLs rewrite APIs
Description : ----------- We rewrite a SQL statement for following reasons: a) Obfuscate the password as following b) Skip some clauses from ACL DDLs before adding the statement to binlog. c) Needs to re-synthesize some of the SQL statements. There are following three mediums where we add the rewritten SQL statement. a) Usual log files that includes General, slow query and audit log. b) binlog files c) Standard output to print the result of queries like SHOW CREATE USER. Problems ======== 1) A SQL statement which contains a plain text password is rewritten in two different type in the different logs. 2) Current rewrite design is difficult to maintain and extend. For instance - Refer Bug#24911117 (Sakila) (Sakila) fix in RB#19217. 3) If some of the clauses are not specified in the SQL statement then their default value is added to the statement rewritten for the general log but not for the audit, slow query and binlogs. It happens because once the query is rewritten for the binlog the same is used for subsequent logs (Refer Bug#27967905 (Sakila)). This worklog proposes an alternate design to fix the current problems, and make it easier to extend the rewrite functionality if so desired in future. Design ====== 1) Added following class hierarchy. There is an abstract base class Rewriter. All the concrete classes have to implement the method rewrite(). +-----------+ |I_Rewriter | +-----------+ ^ | | +-----------------+---------------+------------+-----+------------so on | | | | | | | | | | Rewriter_user Rewriter_set Rewriter_slave_start | Rewriter_create_server ^ ^ | | | Rewriter_change_master | Rewriter_set_password | +-------------+---------------+ | | | | | | | | Rewriter_show_create_user | | | Rewriter_alter_user | Rewriter_create user 2) Added a Rewriter_util class to wrap the common utility methods used across the classes. 3) Some of the ACL DDLs rewrite additional parameters so as much like earlier, there are two interface functions to rewrite the query. The clients must not create the rewriter objects directly, instead they should call following functions as desired. void mysql_rewrite_query() void mysql_rewrite_acl_query() Review: ------- RB#19703
1 parent 60de5b7 commit 7b7073a

15 files changed

+1257
-605
lines changed

mysql-test/r/grant_alter_user_qa.result

+6-6
Original file line numberDiff line numberDiff line change
@@ -1556,31 +1556,31 @@ Show what is logged:
15561556
SELECT argument FROM mysql.general_log WHERE argument LIKE 'CREATE USER %' AND
15571557
command_type NOT LIKE 'Prepare';
15581558
argument
1559-
CREATE USER 'u1'@'%' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
1559+
CREATE USER 'u1'@'%' IDENTIFIED WITH 'mysql_native_password' BY <secret>
15601560
CREATE USER user8@localhost IDENTIFIED WITH 'mysql_native_password'
15611561
AS '*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF'
15621562
CREATE USER user1@localhost IDENTIFIED WITH 'sha256_password' REQUIRE SSL
15631563
CREATE USER user11@localhost IDENTIFIED WITH 'mysql_native_password'
15641564
PASSWORD EXPIRE NEVER ACCOUNT LOCK
15651565
CREATE USER user12@localhost IDENTIFIED WITH 'sha256_password'
15661566
PASSWORD EXPIRE NEVER
1567-
CREATE USER 'u2'@'localhost' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
1567+
CREATE USER 'u2'@'localhost' IDENTIFIED BY <secret>
15681568
CREATE USER u10@localhost IDENTIFIED WITH 'sha256_password'
15691569
REQUIRE CIPHER "DHE-RSA-AES256-SHA" AND
15701570
SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client"
15711571
ISSUER "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=CA"
15721572
WITH MAX_QUERIES_PER_HOUR 2 MAX_USER_CONNECTIONS 2
1573-
CREATE USER 'user13'@'localhost' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
1573+
CREATE USER 'user13'@'localhost' IDENTIFIED BY <secret> ACCOUNT UNLOCK
15741574
CREATE USER user14@localhost IDENTIFIED WITH 'mysql_native_password' AS '*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF'
15751575
ACCOUNT LOCK
1576-
CREATE USER 'user15'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' PASSWORD EXPIRE NEVER ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
1576+
CREATE USER 'user15'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY <secret> PASSWORD EXPIRE NEVER ACCOUNT UNLOCK
15771577
CREATE USER user16@localhost IDENTIFIED WITH 'mysql_native_password' AS '*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF'
15781578
ACCOUNT LOCK PASSWORD EXPIRE NEVER
15791579
CREATE USER user10@localhost IDENTIFIED WITH 'mysql_native_password' AS '*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF'
15801580
SELECT argument FROM mysql.general_log WHERE argument LIKE 'ALTER USER %' AND
15811581
command_type NOT LIKE 'Prepare';
15821582
argument
1583-
ALTER USER 'u10'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' REQUIRE SSL PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
1583+
ALTER USER 'u10'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY <secret> REQUIRE SSL
15841584
ALTER USER user11@localhost IDENTIFIED WITH 'sha256_password'
15851585
REQUIRE CIPHER "DHE-RSA-AES256-SHA" AND
15861586
SUBJECT "/C=SE/ST=Stockholm/L=Stockholm/O=Oracle/OU=MySQL/CN=Client"
@@ -1593,7 +1593,7 @@ ALTER USER user13@localhost WITH MAX_QUERIES_PER_HOUR 22
15931593
MAX_USER_CONNECTIONS 4 ACCOUNT LOCK PASSWORD EXPIRE NEVER
15941594
ALTER USER user15@localhost PASSWORD EXPIRE DEFAULT ACCOUNT LOCK
15951595
ALTER USER user16@localhost PASSWORD EXPIRE INTERVAL 10 DAY ACCOUNT LOCK
1596-
ALTER USER 'u1'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
1596+
ALTER USER 'u1'@'%' IDENTIFIED BY <secret>
15971597
SELECT argument FROM mysql.general_log WHERE argument LIKE 'SET PASSWORD %';
15981598
argument
15991599
SELECT argument FROM mysql.general_log WHERE argument LIKE 'GRANT %'AND

mysql-test/r/grant_user_lock.result

+7-7
Original file line numberDiff line numberDiff line change
@@ -346,16 +346,16 @@ Show what is logged:
346346
SELECT argument FROM mysql.general_log WHERE argument LIKE 'CREATE USER %' AND
347347
command_type NOT LIKE 'Prepare';
348348
argument
349-
CREATE USER 'u1'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
350-
CREATE USER 'u2'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' ACCOUNT LOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
351-
CREATE USER 'u3'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
349+
CREATE USER 'u1'@'%' IDENTIFIED BY <secret>
350+
CREATE USER 'u2'@'%' IDENTIFIED BY <secret> ACCOUNT LOCK
351+
CREATE USER 'u3'@'%' IDENTIFIED BY <secret> ACCOUNT UNLOCK
352352
SELECT argument FROM mysql.general_log WHERE argument LIKE 'ALTER USER %'AND
353353
command_type NOT LIKE 'Prepare';
354354
argument
355-
ALTER USER 'u1'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
356-
ALTER USER 'u1'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' ACCOUNT LOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
357-
ALTER USER 'u1'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' ACCOUNT UNLOCK PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
358-
ALTER USER 'u2'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
355+
ALTER USER 'u1'@'%' IDENTIFIED BY <secret>
356+
ALTER USER 'u1'@'%' IDENTIFIED BY <secret> ACCOUNT LOCK
357+
ALTER USER 'u1'@'%' IDENTIFIED BY <secret> ACCOUNT UNLOCK
358+
ALTER USER 'u2'@'%' IDENTIFIED BY <secret>
359359
------ done ------
360360
DROP USER u1, u2, u3;
361361
SET GLOBAL general_log_file= @old_general_log_file;

mysql-test/r/plugin_auth.result

+8-7
Original file line numberDiff line numberDiff line change
@@ -214,21 +214,22 @@ SELECT @@LOCAL.external_user;
214214
plug_dest
215215
# in connection default
216216
WL#5706 -- show the above got logged/rewritten correctly
217-
SELECT argument FROM mysql.general_log WHERE argument LIKE CONCAT('%IDENTIFIED ','WITH %') AND
217+
SELECT argument FROM mysql.general_log WHERE argument LIKE CONCAT('CREATE USER %') AND
218218
command_type NOT LIKE 'Prepare';
219219
argument
220220
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest'
221-
CREATE USER 'plug_dest'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
221+
CREATE USER 'plug_dest'@'%' IDENTIFIED BY <secret>
222222
CREATE USER `Ÿ` IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest'
223223
CREATE USER grant_plug IDENTIFIED WITH 'test_plugin_server'
224224
AS 'grant_plug_dest'
225-
CREATE USER 'grant_plug_dest'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
226-
CREATE USER 'grant_plug_dest2'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
227-
CREATE USER 'proxy_admin'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
225+
CREATE USER 'grant_plug_dest'@'%' IDENTIFIED BY <secret>
226+
CREATE USER 'grant_plug_dest2'@'%' IDENTIFIED BY <secret>
227+
CREATE USER 'proxy_admin'@'%' IDENTIFIED BY <secret>
228+
CREATE USER test_drop@localhost
228229
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest'
229-
CREATE USER 'plug_dest'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
230+
CREATE USER 'plug_dest'@'%' IDENTIFIED BY <secret>
230231
CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'plug_dest'
231-
CREATE USER 'plug_dest'@'%' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
232+
CREATE USER 'plug_dest'@'%' IDENTIFIED BY <secret>
232233
## cleanup
233234
DROP USER plug;
234235
DROP USER plug_dest;

mysql-test/r/rewrite_general_log.result

+51-15
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,6 @@
11
TRUNCATE TABLE mysql.general_log;
2+
CALL mtr.add_suppression('Following users were specified in CREATE USER IF NOT EXISTS but they already exist');
3+
CALL mtr.add_suppression('Following users were specified in ALTER USER IF EXISTS but they do not exist');
24
--------------- general log ---------------------------------------
35
SET @old_log_output= @@global.log_output;
46
SET @old_general_log= @@global.general_log;
@@ -34,9 +36,28 @@ CREATE USER test_user2 IDENTIFIED WITH mysql_native_password BY 'azundris2';
3436
CHANGE MASTER TO MASTER_PASSWORD='azundris3';
3537
CREATE USER 'test_user4'@'localhost' IDENTIFIED WITH mysql_native_password;
3638
ALTER USER 'test_user4'@'localhost' IDENTIFIED BY 'azundris4';
39+
CREATE USER test_user5 IDENTIFIED WITH mysql_native_password AS
40+
'*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF', test_user6 IDENTIFIED BY 'test';
41+
ALTER USER IF EXISTS test_user5 IDENTIFIED BY 'test',
42+
test_user6 IDENTIFIED WITH mysql_native_password AS
43+
'*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF', test_user7 IDENTIFIED BY 'test';
44+
Warnings:
45+
Note 3162 Authorization ID 'test_user7'@'%' does not exist.
46+
CREATE USER IF NOT EXISTS test_user6 IDENTIFIED BY 'test',
47+
test_user7 IDENTIFIED BY 'test';
48+
Warnings:
49+
Note 3163 Authorization ID 'test_user6'@'%' already exists.
50+
ALTER USER test_user7 IDENTIFIED WITH mysql_native_password AS
51+
'*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF';
52+
CREATE USER test_user8 IDENTIFIED BY '';
53+
ALTER USER test_user8 IDENTIFIED BY '';
54+
CREATE USER test_user9 IDENTIFIED WITH 'caching_sha2_password' BY '';
55+
ALTER USER test_user9 IDENTIFIED WITH 'caching_sha2_password' BY '';
3756
SET GLOBAL general_log= 'OFF';
3857
DROP USER 'test_user4'@'localhost';
3958
DROP USER 'test_user3'@'localhost';
59+
DROP USER test_user9, test_user8;
60+
DROP USER test_user7, test_user6, test_user5;
4061
DROP USER test_user2;
4162
DROP USER test_user1;
4263
CREATE TABLE test_log (argument TEXT);
@@ -49,22 +70,37 @@ SELECT argument FROM mysql.general_log WHERE argument LIKE CONCAT('%azun','dris%
4970
argument
5071
Show that we logged stuff at all:
5172
------ from file ------
52-
SELECT TRIM(LEADING '\t' FROM MID(argument,LOCATE('Query',argument)+5)) FROM test_log WHERE argument LIKE '%AS %' AND
53-
argument NOT LIKE '%Prepare%';
73+
SELECT TRIM(LEADING '\t' FROM MID(argument,LOCATE('Query',argument)+5)) FROM
74+
test_log WHERE (argument LIKE '%BY %' OR argument LIKE '%AS %')
75+
AND argument NOT LIKE '%Prepare%';
5476
TRIM(LEADING '\t' FROM MID(argument,LOCATE('Query',argument)+5))
55-
CREATE USER 'test_user1'@'%' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
56-
CREATE USER 'test_user3'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' REQUIRE SSL PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
57-
ALTER USER 'test_user3'@'localhost' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' REQUIRE X509 WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 3 MAX_USER_CONNECTIONS 4 PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
58-
CREATE USER 'test_user2'@'%' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
59-
ALTER USER 'test_user4'@'localhost' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
77+
CREATE USER 'test_user1'@'%' IDENTIFIED WITH 'mysql_native_password' BY <secret>
78+
CREATE USER 'test_user3'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY <secret> REQUIRE SSL
79+
ALTER USER 'test_user3'@'localhost' IDENTIFIED BY <secret> REQUIRE X509 WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 3 MAX_USER_CONNECTIONS 4
80+
CREATE USER 'test_user2'@'%' IDENTIFIED WITH 'mysql_native_password' BY <secret>
81+
ALTER USER 'test_user4'@'localhost' IDENTIFIED BY <secret>
82+
CREATE USER 'test_user5'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF','test_user6'@'%' IDENTIFIED BY <secret>
83+
ALTER USER IF EXISTS 'test_user5'@'%' IDENTIFIED BY <secret>,'test_user6'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF','test_user7'@'%' IDENTIFIED BY <secret>
84+
CREATE USER IF NOT EXISTS 'test_user6'@'%' IDENTIFIED BY <secret>,'test_user7'@'%' IDENTIFIED BY <secret>
85+
CREATE USER 'test_user8'@'%' IDENTIFIED BY <secret>
86+
ALTER USER 'test_user8'@'%' IDENTIFIED BY <secret>
87+
CREATE USER 'test_user9'@'%' IDENTIFIED WITH 'caching_sha2_password' BY <secret>
88+
ALTER USER 'test_user9'@'%' IDENTIFIED WITH 'caching_sha2_password' BY <secret>
6089
------ from table ------
61-
SELECT argument FROM mysql.general_log WHERE argument LIKE '%AS %' AND command_type NOT LIKE 'Prepare';
90+
SELECT argument FROM mysql.general_log WHERE argument LIKE '%BY %' AND command_type NOT LIKE 'Prepare';
6291
argument
63-
CREATE USER 'test_user1'@'%' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
64-
CREATE USER 'test_user3'@'localhost' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' REQUIRE SSL PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
65-
ALTER USER 'test_user3'@'localhost' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' REQUIRE X509 WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 3 MAX_USER_CONNECTIONS 4 PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
66-
CREATE USER 'test_user2'@'%' IDENTIFIED WITH 'mysql_native_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
67-
ALTER USER 'test_user4'@'localhost' IDENTIFIED WITH 'caching_sha2_password' AS '<secret>' PASSWORD HISTORY DEFAULT PASSWORD REUSE INTERVAL DEFAULT
92+
CREATE USER 'test_user1'@'%' IDENTIFIED WITH 'mysql_native_password' BY <secret>
93+
CREATE USER 'test_user3'@'localhost' IDENTIFIED WITH 'mysql_native_password' BY <secret> REQUIRE SSL
94+
ALTER USER 'test_user3'@'localhost' IDENTIFIED BY <secret> REQUIRE X509 WITH MAX_QUERIES_PER_HOUR 1 MAX_UPDATES_PER_HOUR 2 MAX_CONNECTIONS_PER_HOUR 3 MAX_USER_CONNECTIONS 4
95+
CREATE USER 'test_user2'@'%' IDENTIFIED WITH 'mysql_native_password' BY <secret>
96+
ALTER USER 'test_user4'@'localhost' IDENTIFIED BY <secret>
97+
CREATE USER 'test_user5'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF','test_user6'@'%' IDENTIFIED BY <secret>
98+
ALTER USER IF EXISTS 'test_user5'@'%' IDENTIFIED BY <secret>,'test_user6'@'%' IDENTIFIED WITH 'mysql_native_password' AS '*67092806AE91BFB6BE72DE6C7BE2B7CCA8CFA9DF','test_user7'@'%' IDENTIFIED BY <secret>
99+
CREATE USER IF NOT EXISTS 'test_user6'@'%' IDENTIFIED BY <secret>,'test_user7'@'%' IDENTIFIED BY <secret>
100+
CREATE USER 'test_user8'@'%' IDENTIFIED BY <secret>
101+
ALTER USER 'test_user8'@'%' IDENTIFIED BY <secret>
102+
CREATE USER 'test_user9'@'%' IDENTIFIED WITH 'caching_sha2_password' BY <secret>
103+
ALTER USER 'test_user9'@'%' IDENTIFIED WITH 'caching_sha2_password' BY <secret>
68104
------ done ------
69105
------ rewrite ------
70106
SELECT argument FROM mysql.general_log WHERE argument LIKE CONCAT('set ','character set %');
@@ -84,8 +120,8 @@ GRANT EXECUTE ON FUNCTION test.func_rewrite_1 TO test_user1
84120
GRANT SELECT,USAGE ON test.* TO test_user3@localhost
85121
GRANT USAGE ON test.* TO test_user3@localhost WITH GRANT OPTION
86122
------ done ------ see log_tables.test for more proof! :)
87-
SELECT COUNT(*)>=1 FROM mysql.general_log WHERE argument LIKE 'CREATE USER%' AND argument LIKE CONCAT('%AS %');
88-
COUNT(*)>=1
123+
SELECT COUNT(*)=1 FROM mysql.general_log WHERE argument LIKE 'CREATE USER%' AND argument LIKE CONCAT('%AS %');
124+
COUNT(*)=1
89125
1
90126
Bug#13958454 -- show we print SET @a:=5, but SELECT (@a:=5)
91127
EXPLAIN SELECT @a=5,@b:=10,@c:=20,@d:=40+5,(@e:=80)+5;

mysql-test/r/rewrite_slow_log.result

+6-6
Original file line numberDiff line numberDiff line change
@@ -41,23 +41,23 @@ sql_text
4141
SELECT sql_text FROM mysql.slow_log WHERE sql_text LIKE CONCAT('%azun','dris%');
4242
sql_text
4343
------ from file ------
44-
SELECT count(*) FROM test_log WHERE sql_text like '%AS %' AND sql_text NOT LIKE '%<secret>%';
44+
SELECT count(*) FROM test_log WHERE sql_text LIKE 'CREATE USER %' AND sql_text LIKE '%<secret>%';
4545
count(*)
4646
1
47-
SELECT sql_text FROM test_log WHERE sql_text like 'CHANGE MASTER TO MASTER_BIND %';
47+
SELECT sql_text FROM test_log WHERE sql_text LIKE 'CHANGE MASTER TO MASTER_BIND %';
4848
sql_text
4949
CHANGE MASTER TO MASTER_BIND = 'eth4n', MASTER_PASSWORD = <secret>, MASTER_CONNECT_RETRY = 1, MASTER_RETRY_COUNT = 7, MASTER_DELAY = 4711, MASTER_HEARTBEAT_PERIOD = 1.010000, MASTER_LOG_FILE = 'master_log_name', MASTER_LOG_POS = 4, MASTER_AUTO_POSITION = 0, MASTER_SSL = 0, MASTER_SSL_CA = 'ca_file_name', MASTER_SSL_CAPATH = 'ca_directory_name', MASTER_SSL_CERT = 'cert_file_name', MASTER_SSL_CRL = 'crl_file_name', MASTER_SSL_CRLPATH = 'crl_directory_name', MASTER_SSL_KEY = 'key_file_name', MASTER_SSL_CIPHER = 'cipher_list', MASTER_SSL_VERIFY_SERVER_CERT = 1, MASTER_TLS_VERSION = 'TLSv1.2', IGNORE_SERVER_IDS = ( 99, 100 ) FOR CHANNEL 'chan_jackie';
50-
SELECT count(*) FROM test_log WHERE sql_text like '%SET PASSWORD %';
50+
SELECT count(*) FROM test_log WHERE sql_text LIKE 'SET PASSWORD %' AND sql_text LIKE '%<secret>%';
5151
count(*)
5252
1
5353
------ from table ------
54-
SELECT count(*) FROM mysql.slow_log WHERE sql_text like '%AS %' AND sql_text NOT LIKE '%<secret>%';
54+
SELECT count(*) FROM mysql.slow_log WHERE sql_text LIKE 'CREATE USER %' AND sql_text LIKE '%<secret>%';
5555
count(*)
5656
1
57-
SELECT sql_text FROM test_log WHERE sql_text like 'CHANGE MASTER TO MASTER_BIND %';
57+
SELECT sql_text FROM test_log WHERE sql_text LIKE 'CHANGE MASTER TO MASTER_BIND %';
5858
sql_text
5959
CHANGE MASTER TO MASTER_BIND = 'eth4n', MASTER_PASSWORD = <secret>, MASTER_CONNECT_RETRY = 1, MASTER_RETRY_COUNT = 7, MASTER_DELAY = 4711, MASTER_HEARTBEAT_PERIOD = 1.010000, MASTER_LOG_FILE = 'master_log_name', MASTER_LOG_POS = 4, MASTER_AUTO_POSITION = 0, MASTER_SSL = 0, MASTER_SSL_CA = 'ca_file_name', MASTER_SSL_CAPATH = 'ca_directory_name', MASTER_SSL_CERT = 'cert_file_name', MASTER_SSL_CRL = 'crl_file_name', MASTER_SSL_CRLPATH = 'crl_directory_name', MASTER_SSL_KEY = 'key_file_name', MASTER_SSL_CIPHER = 'cipher_list', MASTER_SSL_VERIFY_SERVER_CERT = 1, MASTER_TLS_VERSION = 'TLSv1.2', IGNORE_SERVER_IDS = ( 99, 100 ) FOR CHANNEL 'chan_jackie';
60-
SELECT count(*) FROM test_log WHERE sql_text like '%SET PASSWORD %';
60+
SELECT count(*) FROM test_log WHERE sql_text LIKE 'SET PASSWORD %' AND sql_text LIKE '%<secret>%';
6161
count(*)
6262
1
6363
------ done ------

mysql-test/suite/x/r/performance_schema_stmt.result

+1-1
Original file line numberDiff line numberDiff line change
@@ -170,7 +170,7 @@ client_id user host sql_session
170170
1 x_root localhost $SESSION
171171
command ok
172172
Query
173-
CREATE USER 'unpriv'@'localhost' IDENTIFIED WITH 'mysql_native_password'
173+
CREATE USER 'unpriv'@'localhost'
174174
SET PASSWORD FOR `unpriv`@`localhost`=<secret>
175175
0 rows affected
176176
######### kill_client #########

mysql-test/t/plugin_auth.test

+1-1
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ connection default;
281281
disconnect plug_con;
282282

283283
--echo WL#5706 -- show the above got logged/rewritten correctly
284-
SELECT argument FROM mysql.general_log WHERE argument LIKE CONCAT('%IDENTIFIED ','WITH %') AND
284+
SELECT argument FROM mysql.general_log WHERE argument LIKE CONCAT('CREATE USER %') AND
285285
command_type NOT LIKE 'Prepare';
286286

287287
--echo ## cleanup

0 commit comments

Comments
 (0)