Merge lp:~gl-az/percona-server/BT23597_utility-user-access_5.6 into lp:percona-server/5.6
- BT23597_utility-user-access_5.6
- Merge into 5.6
Status: | Merged |
---|---|
Approved by: | Alexey Kopytov |
Approved revision: | no longer in the source branch. |
Merged at revision: | 418 |
Proposed branch: | lp:~gl-az/percona-server/BT23597_utility-user-access_5.6 |
Merge into: | lp:percona-server/5.6 |
Diff against target: |
262 lines (+86/-21) 8 files modified
Percona-Server/mysql-test/r/mysqld--help-notwin.result (+5/-0) Percona-Server/mysql-test/r/mysqld--help-win.result (+5/-0) Percona-Server/mysql-test/r/percona_utility_user.result (+12/-7) Percona-Server/mysql-test/t/percona_utility_user-master.opt (+1/-1) Percona-Server/mysql-test/t/percona_utility_user.test (+24/-10) Percona-Server/sql/mysqld.cc (+9/-0) Percona-Server/sql/mysqld.h (+1/-0) Percona-Server/sql/sql_acl.cc (+29/-3) |
To merge this branch: | bzr merge lp:~gl-az/percona-server/BT23597_utility-user-access_5.6 |
Related bugs: | |
Related blueprints: |
Reviewer | Review Type | Date Requested | Status |
---|---|---|---|
Alexey Kopytov (community) | Approve | ||
Laurynas Biveinis (community) | Approve | ||
Sergei Glushchenko (community) | g2 | Approve | |
Review via email: mp+181176@code.launchpad.net |
Commit message
Description of the change
Merge utility-user-access from 5.5
George Ormond Lorch III (gl-az) wrote : | # |
Sergei Glushchenko (sergei.glushchenko) wrote : | # |
See comments on 5.5 version of MP
George Ormond Lorch III (gl-az) wrote : | # |
Same comments as 5.5 MP
http://
Sergei Glushchenko (sergei.glushchenko) wrote : | # |
Looks good George, but please create separate blueprint for 5.6 and link this branch to it. Approve.
George Ormond Lorch III (gl-az) wrote : | # |
Ahh yeah, totally forgot about the duplicate blueprint thing...again.
Will do in just a minute here.
On 8/21/2013 12:46 PM, Sergei Glushchenko wrote:
> Review: Approve g2
>
> Looks good George, but please create separate blueprint for 5.6 and link this branch to it. Approve.
--
George O. Lorch III
Software Engineer, Percona
+1-888-401-3401 x542 US/Arizona (GMT -7)
skype: george.
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
Same comments as for 5.5 MP.
George Ormond Lorch III (gl-az) wrote : | # |
See comments, fixes and manual test results in 5.5
http://
George Ormond Lorch III (gl-az) wrote : | # |
Merged again from 5.5
http://
George Ormond Lorch III (gl-az) wrote : | # |
Oops, lets try this again with the right branch in jenkins
http://
Alexey Kopytov (akopytov) wrote : | # |
Same comments as in 5.5.
George Ormond Lorch III (gl-az) wrote : | # |
fixes re-ported from 5.5
http://
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
Same concern as with the 5.5 MP.
George Ormond Lorch III (gl-az) wrote : | # |
re-port from 5.5 and jenkins http://
Laurynas Biveinis (laurynas-biveinis) wrote : | # |
s/priviliges/
Leaving as Needs Review for Alexey.
Alexey Kopytov (akopytov) : | # |
Preview Diff
1 | === modified file 'Percona-Server/mysql-test/r/mysqld--help-notwin.result' | |||
2 | --- Percona-Server/mysql-test/r/mysqld--help-notwin.result 2013-08-06 15:16:34 +0000 | |||
3 | +++ Percona-Server/mysql-test/r/mysqld--help-notwin.result 2013-08-27 20:56:36 +0000 | |||
4 | @@ -1044,6 +1044,10 @@ | |||
5 | 1044 | list of users and recognized as the utility user. | 1044 | list of users and recognized as the utility user. |
6 | 1045 | --utility-user-password=name | 1045 | --utility-user-password=name |
7 | 1046 | Specifies the password required for the utility user. | 1046 | Specifies the password required for the utility user. |
8 | 1047 | --utility-user-privileges=name | ||
9 | 1048 | Specifies the privileges that the utility user will have | ||
10 | 1049 | in a comma delimited list. See the manual for a complete | ||
11 | 1050 | list of privileges. | ||
12 | 1047 | --utility-user-schema-access=name | 1051 | --utility-user-schema-access=name |
13 | 1048 | Specifies the schemas that the utility user has access to | 1052 | Specifies the schemas that the utility user has access to |
14 | 1049 | in a comma delimited list. | 1053 | in a comma delimited list. |
15 | @@ -1366,6 +1370,7 @@ | |||
16 | 1366 | userstat FALSE | 1370 | userstat FALSE |
17 | 1367 | utility-user (No default value) | 1371 | utility-user (No default value) |
18 | 1368 | utility-user-password (No default value) | 1372 | utility-user-password (No default value) |
19 | 1373 | utility-user-privileges | ||
20 | 1369 | utility-user-schema-access (No default value) | 1374 | utility-user-schema-access (No default value) |
21 | 1370 | validate-user-plugins TRUE | 1375 | validate-user-plugins TRUE |
22 | 1371 | verbose TRUE | 1376 | verbose TRUE |
23 | 1372 | 1377 | ||
24 | === modified file 'Percona-Server/mysql-test/r/mysqld--help-win.result' | |||
25 | --- Percona-Server/mysql-test/r/mysqld--help-win.result 2013-08-06 15:16:34 +0000 | |||
26 | +++ Percona-Server/mysql-test/r/mysqld--help-win.result 2013-08-27 20:56:36 +0000 | |||
27 | @@ -1008,6 +1008,10 @@ | |||
28 | 1008 | list of users and recognized as the utility user. | 1008 | list of users and recognized as the utility user. |
29 | 1009 | --utility-user-password=name | 1009 | --utility-user-password=name |
30 | 1010 | Specifies the password required for the utility user. | 1010 | Specifies the password required for the utility user. |
31 | 1011 | --utility-user-privileges=name | ||
32 | 1012 | Specifies the privileges that the utility user will have | ||
33 | 1013 | in a comma delimited list. See the manual for a complete | ||
34 | 1014 | list of privileges. | ||
35 | 1011 | --utility-user-schema-access=name | 1015 | --utility-user-schema-access=name |
36 | 1012 | Specifies the schemas that the utility user has access to | 1016 | Specifies the schemas that the utility user has access to |
37 | 1013 | in a comma delimited list. | 1017 | in a comma delimited list. |
38 | @@ -1311,6 +1315,7 @@ | |||
39 | 1311 | updatable-views-with-limit YES | 1315 | updatable-views-with-limit YES |
40 | 1312 | utility-user (No default value) | 1316 | utility-user (No default value) |
41 | 1313 | utility-user-password (No default value) | 1317 | utility-user-password (No default value) |
42 | 1318 | utility-user-privileges | ||
43 | 1314 | utility-user-schema-access (No default value) | 1319 | utility-user-schema-access (No default value) |
44 | 1315 | validate-user-plugins TRUE | 1320 | validate-user-plugins TRUE |
45 | 1316 | verbose TRUE | 1321 | verbose TRUE |
46 | 1317 | 1322 | ||
47 | === modified file 'Percona-Server/mysql-test/r/percona_utility_user.result' | |||
48 | --- Percona-Server/mysql-test/r/percona_utility_user.result 2013-05-06 15:43:51 +0000 | |||
49 | +++ Percona-Server/mysql-test/r/percona_utility_user.result 2013-08-27 20:56:36 +0000 | |||
50 | @@ -35,8 +35,6 @@ | |||
51 | 35 | ERROR HY000: Operation DROP USER failed for 'frank'@'localhost' | 35 | ERROR HY000: Operation DROP USER failed for 'frank'@'localhost' |
52 | 36 | DROP USER 'frank'@'%'; | 36 | DROP USER 'frank'@'%'; |
53 | 37 | ERROR HY000: Operation DROP USER failed for 'frank'@'%' | 37 | ERROR HY000: Operation DROP USER failed for 'frank'@'%' |
54 | 38 | CREATE DATABASE mysqltest; | ||
55 | 39 | CREATE TABLE mysqltest.t1 (a INT, b INT); | ||
56 | 40 | CREATE USER 'mysqltest_1'@'localhost'; | 38 | CREATE USER 'mysqltest_1'@'localhost'; |
57 | 41 | SELECT user FROM mysql.user WHERE user LIKE 'frank'; | 39 | SELECT user FROM mysql.user WHERE user LIKE 'frank'; |
58 | 42 | user | 40 | user |
59 | @@ -49,19 +47,27 @@ | |||
60 | 49 | SHOW DATABASES; | 47 | SHOW DATABASES; |
61 | 50 | Database | 48 | Database |
62 | 51 | information_schema | 49 | information_schema |
63 | 50 | mtr | ||
64 | 52 | mysql | 51 | mysql |
65 | 53 | performance_schema | 52 | performance_schema |
66 | 53 | test | ||
67 | 54 | CREATE USER 'frankjr'@'localhost' IDENTIFIED BY 'password'; | 54 | CREATE USER 'frankjr'@'localhost' IDENTIFIED BY 'password'; |
68 | 55 | GRANT ALL ON mysql.* TO 'frankjr'@'localhost'; | 55 | GRANT ALL ON mysql.* TO 'frankjr'@'localhost'; |
69 | 56 | REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'frankjr'@'localhost'; | 56 | REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'frankjr'@'localhost'; |
70 | 57 | SET PASSWORD FOR 'frankjr'@'localhost' = PASSWORD(''); | 57 | SET PASSWORD FOR 'frankjr'@'localhost' = PASSWORD(''); |
71 | 58 | DROP USER 'frankjr'@'localhost'; | 58 | DROP USER 'frankjr'@'localhost'; |
72 | 59 | CREATE DATABASE mysqltest; | ||
73 | 60 | CREATE TABLE mysqltest.t1 (a INT, b INT); | ||
74 | 59 | SHOW TABLES IN mysqltest; | 61 | SHOW TABLES IN mysqltest; |
78 | 60 | ERROR 42000: Access denied for user 'frank'@'%' to database 'mysqltest' | 62 | Tables_in_mysqltest |
79 | 61 | CREATE DATABASE foobar; | 63 | t1 |
80 | 62 | ERROR 42000: Access denied for user 'frank'@'%' to database 'foobar' | 64 | INSERT INTO mysqltest.t1(a, b) VALUES (1, 1); |
81 | 65 | ERROR 42000: INSERT command denied to user 'frank'@'localhost' for table 't1' | ||
82 | 66 | SELECT * FROM mysqltest.t1; | ||
83 | 67 | ERROR 42000: SELECT command denied to user 'frank'@'localhost' for table 't1' | ||
84 | 68 | ALTER TABLE mysqltest.t1 DROP COLUMN b; | ||
85 | 69 | ERROR 42000: ALTER command denied to user 'frank'@'localhost' for table 't1' | ||
86 | 63 | DROP DATABASE mysqltest; | 70 | DROP DATABASE mysqltest; |
87 | 64 | ERROR 42000: Access denied for user 'frank'@'%' to database 'mysqltest' | ||
88 | 65 | SET PASSWORD FOR 'mysqltest_1'@'localhost' = PASSWORD('newpass'); | 71 | SET PASSWORD FOR 'mysqltest_1'@'localhost' = PASSWORD('newpass'); |
89 | 66 | SET @testtemp= @@global.innodb_fast_shutdown; | 72 | SET @testtemp= @@global.innodb_fast_shutdown; |
90 | 67 | SET @@global.innodb_fast_shutdown= 2; | 73 | SET @@global.innodb_fast_shutdown= 2; |
91 | @@ -74,7 +80,6 @@ | |||
92 | 74 | 0 | 80 | 0 |
93 | 75 | SET @@global.innodb_fast_shutdown= @testtemp; | 81 | SET @@global.innodb_fast_shutdown= @testtemp; |
94 | 76 | DROP USER 'mysqltest_1'@'localhost'; | 82 | DROP USER 'mysqltest_1'@'localhost'; |
95 | 77 | DROP DATABASE mysqltest; | ||
96 | 78 | CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'frank'; | 83 | CREATE USER plug IDENTIFIED WITH 'test_plugin_server' AS 'frank'; |
97 | 79 | SELECT plugin,authentication_string FROM mysql.user WHERE User='plug'; | 84 | SELECT plugin,authentication_string FROM mysql.user WHERE User='plug'; |
98 | 80 | plugin authentication_string | 85 | plugin authentication_string |
99 | 81 | 86 | ||
100 | === modified file 'Percona-Server/mysql-test/t/percona_utility_user-master.opt' | |||
101 | --- Percona-Server/mysql-test/t/percona_utility_user-master.opt 2013-05-06 15:43:51 +0000 | |||
102 | +++ Percona-Server/mysql-test/t/percona_utility_user-master.opt 2013-08-27 20:56:36 +0000 | |||
103 | @@ -1,1 +1,1 @@ | |||
105 | 1 | --utility_user=frank@% --utility_user_password=password --utility_user_schema_access=mysql,performance_schema $PLUGIN_AUTH_OPT $PLUGIN_AUTH_LOAD | 1 | --utility_user=frank@% --utility_user_password=password --utility_user_schema_access=mysql,performance_schema --utility-user-privileges="CREATE,DROP,SHOW DATABASES" $PLUGIN_AUTH_OPT $PLUGIN_AUTH_LOAD |
106 | 2 | 2 | ||
107 | === modified file 'Percona-Server/mysql-test/t/percona_utility_user.test' | |||
108 | --- Percona-Server/mysql-test/t/percona_utility_user.test 2013-05-06 15:43:51 +0000 | |||
109 | +++ Percona-Server/mysql-test/t/percona_utility_user.test 2013-08-27 20:56:36 +0000 | |||
110 | @@ -66,8 +66,6 @@ | |||
111 | 66 | --error ER_CANNOT_USER | 66 | --error ER_CANNOT_USER |
112 | 67 | DROP USER 'frank'@'%'; | 67 | DROP USER 'frank'@'%'; |
113 | 68 | 68 | ||
114 | 69 | CREATE DATABASE mysqltest; | ||
115 | 70 | CREATE TABLE mysqltest.t1 (a INT, b INT); | ||
116 | 71 | CREATE USER 'mysqltest_1'@'localhost'; | 69 | CREATE USER 'mysqltest_1'@'localhost'; |
117 | 72 | 70 | ||
118 | 73 | connect (frank,localhost,frank,password,mysql); | 71 | connect (frank,localhost,frank,password,mysql); |
119 | @@ -91,13 +89,28 @@ | |||
120 | 91 | 89 | ||
121 | 92 | DROP USER 'frankjr'@'localhost'; | 90 | DROP USER 'frankjr'@'localhost'; |
122 | 93 | 91 | ||
124 | 94 | --error ER_DBACCESS_DENIED_ERROR | 92 | # Allowed because --utility-user-priviliges has CREATE |
125 | 93 | CREATE DATABASE mysqltest; | ||
126 | 94 | |||
127 | 95 | # Allowed because --utility-user-priviliges has CREATE | ||
128 | 96 | CREATE TABLE mysqltest.t1 (a INT, b INT); | ||
129 | 97 | |||
130 | 98 | # Allowed because --utility-user-priviliges has SHOW DATABASES | ||
131 | 95 | SHOW TABLES IN mysqltest; | 99 | SHOW TABLES IN mysqltest; |
132 | 96 | 100 | ||
137 | 97 | --error ER_DBACCESS_DENIED_ERROR | 101 | # NOT allowed because --utility-user-priviliges does not have INSERT |
138 | 98 | CREATE DATABASE foobar; | 102 | --error ER_TABLEACCESS_DENIED_ERROR |
139 | 99 | 103 | INSERT INTO mysqltest.t1(a, b) VALUES (1, 1); | |
140 | 100 | --error ER_DBACCESS_DENIED_ERROR | 104 | |
141 | 105 | # NOT allowed because --utility-user-priviliges does not have SELECT | ||
142 | 106 | --error ER_TABLEACCESS_DENIED_ERROR | ||
143 | 107 | SELECT * FROM mysqltest.t1; | ||
144 | 108 | |||
145 | 109 | # NOT allowed because --utility-user-priviliges does not have ALTER | ||
146 | 110 | --error ER_TABLEACCESS_DENIED_ERROR | ||
147 | 111 | ALTER TABLE mysqltest.t1 DROP COLUMN b; | ||
148 | 112 | |||
149 | 113 | # Allowed because --utility-user-priviliges has DROP | ||
150 | 101 | DROP DATABASE mysqltest; | 114 | DROP DATABASE mysqltest; |
151 | 102 | 115 | ||
152 | 103 | SET PASSWORD FOR 'mysqltest_1'@'localhost' = PASSWORD('newpass'); | 116 | SET PASSWORD FOR 'mysqltest_1'@'localhost' = PASSWORD('newpass'); |
153 | @@ -110,11 +123,12 @@ | |||
154 | 110 | SET @@global.innodb_fast_shutdown= @testtemp; | 123 | SET @@global.innodb_fast_shutdown= @testtemp; |
155 | 111 | 124 | ||
156 | 112 | connection default; | 125 | connection default; |
157 | 126 | disconnect frank; | ||
158 | 113 | 127 | ||
159 | 128 | # | ||
160 | 129 | # cleanup from above tests | ||
161 | 130 | # | ||
162 | 114 | DROP USER 'mysqltest_1'@'localhost'; | 131 | DROP USER 'mysqltest_1'@'localhost'; |
163 | 115 | DROP DATABASE mysqltest; | ||
164 | 116 | |||
165 | 117 | disconnect frank; | ||
166 | 118 | 132 | ||
167 | 119 | # | 133 | # |
168 | 120 | # Try to impersonate a proxied utility_user | 134 | # Try to impersonate a proxied utility_user |
169 | 121 | 135 | ||
170 | === modified file 'Percona-Server/sql/mysqld.cc' | |||
171 | --- Percona-Server/sql/mysqld.cc 2013-08-14 03:57:21 +0000 | |||
172 | +++ Percona-Server/sql/mysqld.cc 2013-08-27 20:56:36 +0000 | |||
173 | @@ -715,6 +715,10 @@ | |||
174 | 715 | char* utility_user_password= NULL; | 715 | char* utility_user_password= NULL; |
175 | 716 | char* utility_user_schema_access= NULL; | 716 | char* utility_user_schema_access= NULL; |
176 | 717 | 717 | ||
177 | 718 | /* Plucking this from sql/sql_acl.cc for an array of privilege names */ | ||
178 | 719 | extern TYPELIB utility_user_privileges_typelib; | ||
179 | 720 | ulonglong utility_user_privileges= 0; | ||
180 | 721 | |||
181 | 718 | /* Thread specific variables */ | 722 | /* Thread specific variables */ |
182 | 719 | 723 | ||
183 | 720 | pthread_key(MEM_ROOT**,THR_MALLOC); | 724 | pthread_key(MEM_ROOT**,THR_MALLOC); |
184 | @@ -7389,6 +7393,11 @@ | |||
185 | 7389 | "utility user.", | 7393 | "utility user.", |
186 | 7390 | &utility_user_password, 0, 0, GET_STR, REQUIRED_ARG, | 7394 | &utility_user_password, 0, 0, GET_STR, REQUIRED_ARG, |
187 | 7391 | 0, 0, 0, 0, 0, 0}, | 7395 | 0, 0, 0, 0, 0, 0}, |
188 | 7396 | {"utility_user_privileges", 0, "Specifies the privileges that the utility " | ||
189 | 7397 | "user will have in a comma delimited list. See the manual for a complete " | ||
190 | 7398 | "list of privileges.", | ||
191 | 7399 | &utility_user_privileges, 0, &utility_user_privileges_typelib, | ||
192 | 7400 | GET_SET, REQUIRED_ARG, 0, 0, 0, 0, 0, 0}, | ||
193 | 7392 | {"utility_user_schema_access", 0, "Specifies the schemas that the utility " | 7401 | {"utility_user_schema_access", 0, "Specifies the schemas that the utility " |
194 | 7393 | "user has access to in a comma delimited list.", | 7402 | "user has access to in a comma delimited list.", |
195 | 7394 | &utility_user_schema_access, 0, 0, GET_STR, REQUIRED_ARG, | 7403 | &utility_user_schema_access, 0, 0, GET_STR, REQUIRED_ARG, |
196 | 7395 | 7404 | ||
197 | === modified file 'Percona-Server/sql/mysqld.h' | |||
198 | --- Percona-Server/sql/mysqld.h 2013-08-06 15:16:34 +0000 | |||
199 | +++ Percona-Server/sql/mysqld.h 2013-08-27 20:56:36 +0000 | |||
200 | @@ -312,6 +312,7 @@ | |||
201 | 312 | extern char* utility_user; | 312 | extern char* utility_user; |
202 | 313 | extern char* utility_user_password; | 313 | extern char* utility_user_password; |
203 | 314 | extern char* utility_user_schema_access; | 314 | extern char* utility_user_schema_access; |
204 | 315 | extern ulonglong utility_user_privileges; | ||
205 | 315 | 316 | ||
206 | 316 | /* | 317 | /* |
207 | 317 | THR_MALLOC is a key which will be used to set/get MEM_ROOT** for a thread, | 318 | THR_MALLOC is a key which will be used to set/get MEM_ROOT** for a thread, |
208 | 318 | 319 | ||
209 | === modified file 'Percona-Server/sql/sql_acl.cc' | |||
210 | --- Percona-Server/sql/sql_acl.cc 2013-08-14 03:57:21 +0000 | |||
211 | +++ Percona-Server/sql/sql_acl.cc 2013-08-27 20:56:36 +0000 | |||
212 | @@ -1749,7 +1749,25 @@ | |||
213 | 1749 | goto cleanup; | 1749 | goto cleanup; |
214 | 1750 | } | 1750 | } |
215 | 1751 | 1751 | ||
217 | 1752 | acl_utility_user.access= 0; | 1752 | DBUG_ASSERT(utility_user_privileges <= UINT_MAX32); |
218 | 1753 | acl_utility_user.access= utility_user_privileges & UINT_MAX32; | ||
219 | 1754 | if (acl_utility_user.access) | ||
220 | 1755 | { | ||
221 | 1756 | char privilege_desc[512]; | ||
222 | 1757 | get_privilege_desc(privilege_desc, array_elements(privilege_desc), acl_utility_user.access); | ||
223 | 1758 | sql_print_information("Utility user '%s'@'%s' in use with access rights " | ||
224 | 1759 | "'%s'.", | ||
225 | 1760 | acl_utility_user.user, | ||
226 | 1761 | acl_utility_user.host.get_host(), | ||
227 | 1762 | privilege_desc); | ||
228 | 1763 | } | ||
229 | 1764 | else | ||
230 | 1765 | { | ||
231 | 1766 | sql_print_information("Utility user '%s'@'%s' in use with basic " | ||
232 | 1767 | "access rights.", | ||
233 | 1768 | acl_utility_user.user, | ||
234 | 1769 | acl_utility_user.host.get_host()); | ||
235 | 1770 | } | ||
236 | 1753 | 1771 | ||
237 | 1754 | acl_utility_user.ssl_type= SSL_TYPE_NONE; | 1772 | acl_utility_user.ssl_type= SSL_TYPE_NONE; |
238 | 1755 | 1773 | ||
239 | @@ -6517,13 +6535,21 @@ | |||
240 | 6517 | "ALTER", "SHOW DATABASES", "SUPER", "CREATE TEMPORARY TABLES", | 6535 | "ALTER", "SHOW DATABASES", "SUPER", "CREATE TEMPORARY TABLES", |
241 | 6518 | "LOCK TABLES", "EXECUTE", "REPLICATION SLAVE", "REPLICATION CLIENT", | 6536 | "LOCK TABLES", "EXECUTE", "REPLICATION SLAVE", "REPLICATION CLIENT", |
242 | 6519 | "CREATE VIEW", "SHOW VIEW", "CREATE ROUTINE", "ALTER ROUTINE", | 6537 | "CREATE VIEW", "SHOW VIEW", "CREATE ROUTINE", "ALTER ROUTINE", |
244 | 6520 | "CREATE USER", "EVENT", "TRIGGER", "CREATE TABLESPACE" | 6538 | "CREATE USER", "EVENT", "TRIGGER", "CREATE TABLESPACE", 0 |
245 | 6539 | }; | ||
246 | 6540 | |||
247 | 6541 | TYPELIB utility_user_privileges_typelib= | ||
248 | 6542 | { | ||
249 | 6543 | array_elements(command_array) - 1, | ||
250 | 6544 | "utility_user_privileges_typelib", | ||
251 | 6545 | command_array, | ||
252 | 6546 | NULL | ||
253 | 6521 | }; | 6547 | }; |
254 | 6522 | 6548 | ||
255 | 6523 | uint command_lengths[]= | 6549 | uint command_lengths[]= |
256 | 6524 | { | 6550 | { |
257 | 6525 | 6, 6, 6, 6, 6, 4, 6, 8, 7, 4, 5, 10, 5, 5, 14, 5, 23, 11, 7, 17, 18, 11, 9, | 6551 | 6, 6, 6, 6, 6, 4, 6, 8, 7, 4, 5, 10, 5, 5, 14, 5, 23, 11, 7, 17, 18, 11, 9, |
259 | 6526 | 14, 13, 11, 5, 7, 17 | 6552 | 14, 13, 11, 5, 7, 17, 0 |
260 | 6527 | }; | 6553 | }; |
261 | 6528 | 6554 | ||
262 | 6529 | #ifndef NO_EMBEDDED_ACCESS_CHECKS | 6555 | #ifndef NO_EMBEDDED_ACCESS_CHECKS |
23597 jenkins. percona. com/view/ PS%205. 6/job/percona- server- 5.6-param/ 225/
jenkins http://