content_image/696646.jpg
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. 

## Grant Table Privilege Column Properties 

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. 

<img src='content_image/696646.jpg'>

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. 

## Grant Table Concurrency 

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: 

• 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. 

Statements that no longer acquire row locks when reading data from grant tables report a warning if executed while using statement-based replication. 

