@@ -183,221 +183,9 @@ TABLE_FIELD_TYPE mysql_db_table_fields[MYSQL_DB_FIELD_COUNT] = {
183183 }
184184};
185185
186- static const
187- TABLE_FIELD_TYPE mysql_user_table_fields[MYSQL_USER_FIELD_COUNT] = {
188- {
189- { C_STRING_WITH_LEN (" Host" ) },
190- { C_STRING_WITH_LEN (" char(60)" ) },
191- { NULL , 0 }
192- },
193- {
194- { C_STRING_WITH_LEN (" User" ) },
195- { C_STRING_WITH_LEN (" char(16)" ) },
196- { NULL , 0 }
197- },
198- {
199- { C_STRING_WITH_LEN (" Password" ) },
200- { C_STRING_WITH_LEN (" char(41)" ) },
201- { C_STRING_WITH_LEN (" latin1" ) }
202- },
203- {
204- { C_STRING_WITH_LEN (" Select_priv" ) },
205- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
206- { C_STRING_WITH_LEN (" utf8" ) }
207- },
208- {
209- { C_STRING_WITH_LEN (" Insert_priv" ) },
210- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
211- { C_STRING_WITH_LEN (" utf8" ) }
212- },
213- {
214- { C_STRING_WITH_LEN (" Update_priv" ) },
215- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
216- { C_STRING_WITH_LEN (" utf8" ) }
217- },
218- {
219- { C_STRING_WITH_LEN (" Delete_priv" ) },
220- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
221- { C_STRING_WITH_LEN (" utf8" ) }
222- },
223- {
224- { C_STRING_WITH_LEN (" Create_priv" ) },
225- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
226- { C_STRING_WITH_LEN (" utf8" ) }
227- },
228- {
229- { C_STRING_WITH_LEN (" Drop_priv" ) },
230- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
231- { C_STRING_WITH_LEN (" utf8" ) }
232- },
233- {
234- { C_STRING_WITH_LEN (" Reload_priv" ) },
235- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
236- { C_STRING_WITH_LEN (" utf8" ) }
237- },
238- {
239- { C_STRING_WITH_LEN (" Shutdown_priv" ) },
240- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
241- { C_STRING_WITH_LEN (" utf8" ) }
242- },
243- {
244- { C_STRING_WITH_LEN (" Process_priv" ) },
245- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
246- { C_STRING_WITH_LEN (" utf8" ) }
247- },
248- {
249- { C_STRING_WITH_LEN (" File_priv" ) },
250- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
251- { C_STRING_WITH_LEN (" utf8" ) }
252- },
253- {
254- { C_STRING_WITH_LEN (" Grant_priv" ) },
255- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
256- { C_STRING_WITH_LEN (" utf8" ) }
257- },
258- {
259- { C_STRING_WITH_LEN (" References_priv" ) },
260- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
261- { C_STRING_WITH_LEN (" utf8" ) }
262- },
263- {
264- { C_STRING_WITH_LEN (" Index_priv" ) },
265- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
266- { C_STRING_WITH_LEN (" utf8" ) }
267- },
268- {
269- { C_STRING_WITH_LEN (" Alter_priv" ) },
270- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
271- { C_STRING_WITH_LEN (" utf8" ) }
272- },
273- {
274- { C_STRING_WITH_LEN (" Show_db_priv" ) },
275- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
276- { C_STRING_WITH_LEN (" utf8" ) }
277- },
278- {
279- { C_STRING_WITH_LEN (" Super_priv" ) },
280- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
281- { C_STRING_WITH_LEN (" utf8" ) }
282- },
283- {
284- { C_STRING_WITH_LEN (" Create_tmp_table_priv" ) },
285- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
286- { C_STRING_WITH_LEN (" utf8" ) }
287- },
288- {
289- { C_STRING_WITH_LEN (" Lock_tables_priv" ) },
290- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
291- { C_STRING_WITH_LEN (" utf8" ) }
292- },
293- {
294- { C_STRING_WITH_LEN (" Execute_priv" ) },
295- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
296- { C_STRING_WITH_LEN (" utf8" ) }
297- },
298- {
299- { C_STRING_WITH_LEN (" Repl_slave_priv" ) },
300- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
301- { C_STRING_WITH_LEN (" utf8" ) }
302- },
303- {
304- { C_STRING_WITH_LEN (" Repl_client_priv" ) },
305- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
306- { C_STRING_WITH_LEN (" utf8" ) }
307- },
308- {
309- { C_STRING_WITH_LEN (" Create_view_priv" ) },
310- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
311- { C_STRING_WITH_LEN (" utf8" ) }
312- },
313- {
314- { C_STRING_WITH_LEN (" Show_view_priv" ) },
315- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
316- { C_STRING_WITH_LEN (" utf8" ) }
317- },
318- {
319- { C_STRING_WITH_LEN (" Create_routine_priv" ) },
320- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
321- { C_STRING_WITH_LEN (" utf8" ) }
322- },
323- {
324- { C_STRING_WITH_LEN (" Alter_routine_priv" ) },
325- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
326- { C_STRING_WITH_LEN (" utf8" ) }
327- },
328- {
329- { C_STRING_WITH_LEN (" Create_user_priv" ) },
330- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
331- { C_STRING_WITH_LEN (" utf8" ) }
332- },
333- {
334- { C_STRING_WITH_LEN (" Event_priv" ) },
335- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
336- { C_STRING_WITH_LEN (" utf8" ) }
337- },
338- {
339- { C_STRING_WITH_LEN (" Trigger_priv" ) },
340- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
341- { C_STRING_WITH_LEN (" utf8" ) }
342- },
343- {
344- { C_STRING_WITH_LEN (" Create_tablespace_priv" ) },
345- { C_STRING_WITH_LEN (" enum('N','Y')" ) },
346- { C_STRING_WITH_LEN (" utf8" ) }
347- },
348- {
349- { C_STRING_WITH_LEN (" ssl_type" ) },
350- { C_STRING_WITH_LEN (" enum('','ANY','X509','SPECIFIED')" ) },
351- { C_STRING_WITH_LEN (" utf8" ) }
352- },
353- {
354- { C_STRING_WITH_LEN (" ssl_cipher" ) },
355- { C_STRING_WITH_LEN (" blob" ) },
356- { NULL , 0 }
357- },
358- {
359- { C_STRING_WITH_LEN (" x509_issuer" ) },
360- { C_STRING_WITH_LEN (" blob" ) },
361- { NULL , 0 }
362- },
363- {
364- { C_STRING_WITH_LEN (" x509_subject" ) },
365- { C_STRING_WITH_LEN (" blob" ) },
366- { NULL , 0 }
367- },
368- {
369- { C_STRING_WITH_LEN (" max_questions" ) },
370- { C_STRING_WITH_LEN (" int(11)" ) },
371- { NULL , 0 }
372- },
373- {
374- { C_STRING_WITH_LEN (" max_updates" ) },
375- { C_STRING_WITH_LEN (" int(11)" ) },
376- { NULL , 0 }
377- },
378- {
379- { C_STRING_WITH_LEN (" max_connections" ) },
380- { C_STRING_WITH_LEN (" int(11)" ) },
381- { NULL , 0 }
382- },
383- {
384- { C_STRING_WITH_LEN (" plugin" ) },
385- { C_STRING_WITH_LEN (" char(64)" ) },
386- { NULL , 0 }
387- },
388- {
389- { C_STRING_WITH_LEN (" authentication_string" ) },
390- { C_STRING_WITH_LEN (" text" ) },
391- { NULL , 0 }
392- }
393- };
394-
395186const TABLE_FIELD_DEF
396187 mysql_db_table_def= {MYSQL_DB_FIELD_COUNT, mysql_db_table_fields};
397188
398- const TABLE_FIELD_DEF
399- mysql_user_table_def= {MYSQL_USER_FIELD_COUNT, mysql_user_table_fields};
400-
401189static LEX_STRING native_password_plugin_name= {
402190 C_STRING_WITH_LEN (" mysql_native_password" )
403191};
@@ -6203,7 +5991,7 @@ bool check_grant_db(THD *thd,const char *db)
62035991 bool error= TRUE ;
62045992 size_t copy_length;
62055993
6206- copy_length= (size_t ) (strlen (sctx->priv_user ? sctx-> priv_user : " " ) +
5994+ copy_length= (size_t ) (strlen (sctx->priv_user ) +
62075995 strlen (db ? db : " " )) + 1 ; /* Added 1 at the end to avoid
62085996 buffer overflow at strmov()*/
62095997
@@ -9299,7 +9087,7 @@ void fill_effective_table_privileges(THD *thd, GRANT_INFO *grant,
92999087 DBUG_PRINT (" enter" , (" Host: '%s', Ip: '%s', User: '%s', table: `%s`.`%s`" ,
93009088 sctx->priv_host , (sctx->get_ip ()->length () ?
93019089 sctx->get_ip ()->ptr () : " (NULL)" ),
9302- ( sctx->priv_user ? sctx-> priv_user : " (NULL) " ) ,
9090+ sctx->priv_user ,
93039091 db, table));
93049092 /* --skip-grants */
93059093 if (!initialized)
@@ -11292,8 +11080,7 @@ acl_authenticate(THD *thd, uint com_change_user_pkt_len)
1129211080 {
1129311081 general_log_print (thd, command, " %s@%s as %s on %s" ,
1129411082 mpvio.auth_info .user_name , mpvio.auth_info .host_or_ip ,
11295- mpvio.auth_info .authenticated_as ?
11296- mpvio.auth_info .authenticated_as : " anonymous" ,
11083+ mpvio.auth_info .authenticated_as ,
1129711084 mpvio.db .str ? mpvio.db .str : (char *) " " );
1129811085 }
1129911086 else
0 commit comments