also the database name need to be the name of the database not the table correct? stupid question but just want to be 100% sure i know how some languages can be lol.
Yeah, database name and tables are different things.
You probably want something like
GRANT SELECT ON YourDB.Accounts TO YourUser@ClientHostname
Where YourUser@ClientHostname
is the user you want to grant the access. You need to create it separately.
CREATE USER 'accounts_user'@'localhost' IDENTIFIED BY 'SomeSecurePassword'
The ClientHostname part is a way to restrict the source of login. For example, you may only want web servers to be able to log in using that user/password, as a security measure. So if the database ends up accidentally exposed to the Internet, the credentials won't match the host part and be denied. You can use %
to allow everything.