(I took this unanswered question from the internet beacuase it explained my situation very good and I am also using a mac)
I added a user A with only access to one Database 'B'.
If I log in with it in MySQL Workbench, it shows me:
Tables could not be fetched
Views could not be fetched
Stored procedures could not be fetched
Functionscould not be fetched
The fun thing is that under "Tables could not be fetched" all tables of the DB are shown. The query SHOW TABLES; also gives the correct result.
If I log in with the root user or a user with all privileges on . it displays everything correctly.
I have tried the solution mysql mysql_upgrade -u root -p --force and mysql_upgrade -u root -p but i got the errror below.
Everything worked fine with the connection after your help but out of nowhere it stopped working and I don't know why.
When i try connecting to the connection via workbench (look at picture) it only loads and then crashes.
When I go to terminal and type mysql -u root -p it asks for password and then nothing happens look at second picture.
Your connection attempt failed for user 'root' to the MySQL server at localhost:3306:
Access denied for user 'root'@'localhost'
1 Check that MySQL is running on address localhost
2 Check that MySQL is reachable on port 3306 (note: 3306 is the default, but this can be changed)
3 Check the user root has rights to connect to localhost from your address (MySQL rights define what clients can connect to the server and from which machines)
4 Make sure you are both providing a password if needed and using the correct password for localhost connecting from the host address you're connecting from
SSL: Not in use
Current pager: stdout
Using outfile: ''
Using delimiter: ;
Server version: 10.4.10-MariaDB Homebrew
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8
Conn. characterset: utf8
UNIX socket: /tmp/mysql.sock
Uptime: 1 day 11 min 46 sec