MySQL least privileges to get database/tables size
This is a little confusing but the minimum privileges you need to check a table size is to have the privileges to SELECT that table. So if you want to know the whole DB size you need privileges to SELECT every single table in that DB.

This is why:


There is no way to read a DB size without reading its tables' sizes
The command to read a table size (no querying information_schema) is SHOW TABLE STATUS table_name
SHOW TABLE STATUS derives from SHOW TABLES, so the privileges and rules are similar.
Finally, the official documentation about SHOW TABLE:
https://dev.mysql.com/doc/refman/8.0/en/show-tables.html


  If you have no privileges for a base table or view, it does not show
  up in the output from SHOW TABLES or mysqlshow db_name.



So the minimum access to check DB sizes is pretty invasive because you need to grant SELECT privileges to all tables.