I'm familiar with granting users access to a whole database (Security > Logins > New Login > User Mapping > then applying db_datareader for example).
However, in this case I don't want to release the whole database to a particular user. Instead, I just want to give them read only access to 3 or 4 tables only within that database.
I read elsewhere that I could grant some public access using the above steps (Security > Logins > New Login > User Mapping > public).
Then, to apply the table level access, I could go into the chosen Database > Tables > Find the specific table > Properties > Permissions > Search for user and apply.
Should this give only table level access - and more importantly, I want to be sure it would not lock down the access to this individual only.
Or is there a better way to approach this? Thanks in advance.
Note that if you're going to be doing this a lot (and there is a good chance you will) it's better to create roles in the database and grant permissions to them and then add the appropriate users to the necessary roles. This becomes a lot more manageable over time because when a new user needs the same access you can just put them in the role, rather than having to go and attempt to figure out what individual permissions need to be granted.