Grant Tables For access-checking purposes, comparisons of  User ,  Proxied_user ,  authentication_string ,  Db , and  Table_name  values are case-sensitive. Comparisons of  Host ,  Proxied_host ,  Column_name , and Routine_name  values are not case-sensitive. The  user  and  db  tables list each privilege in a separate column that is declared as  ENUM(’N’,’Y’) DEFAULT ’N’ . In other words, each privilege can be disabled or enabled, with the default being disabled. The  tables_priv ,  columns_priv , and  procs_priv  tables declare the privilege columns as  SET columns. Values in these columns can contain any combination of the privileges controlled by the table. Only those privileges listed in the column value are enabled. Grant Table Privilege Column Properties Table 6.9 Set-Type Privilege Column Values Table Name Column Name Possible Set Elements tables_priv Table_priv ’Select’, ’Insert’, ’Update’, ’Delete’, ’Create’, ’Drop’, ’Grant’, ’References’, ’Index’, ’Alter’, ’Create View’, ’Show view’, ’Trigger’ tables_priv Column_priv ’Select’, ’Insert’, ’Update’, ’References’ columns_priv Column_priv ’Select’, ’Insert’, ’Update’, ’References’ procs_priv Proc_priv ’Execute’, ’Alter Routine’, ’Grant’ Only the  user  and  global_grants  tables specify administrative privileges, such as  RELOAD ,  SHUTDOWN , and  SYSTEM_VARIABLES_ADMIN . Administrative operations are operations on the server itself and are not database-specific, so there is no reason to list these privileges in the other grant tables. Consequently, the server need consult only the  user  and  global_grants  tables to determine whether a user can perform an administrative operation. The  FILE  privilege also is specified only in the  user  table. It is not an administrative privilege as such, but a user’s ability to read or write files on the server host is independent of the database being accessed. As of MySQL 8.0.22, to permit concurrent DML and DDL operations on MySQL grant tables, read operations that previously acquired row locks on MySQL grant tables are executed as non-locking reads. Operations that are performed as non-locking reads on MySQL grant tables include: Statements that no longer acquire row locks when reading data from grant tables report a warning if executed while using statement-based replication. • SELECT  statements and other read-only statements that read data from grant tables through join lists and subqueries, including  SELECT ... FOR SHARE  statements, using any transaction isolation level. •DML operations that read data from grant tables (through join lists or subqueries) but do not modify them, using any transaction isolation level. Grant Table Concurrency 1213