I was asked to grant
UPDATE to a given user for all tables in a database. I ended up adding the user to
db_datareader and granting them
UPDATE at the database level.
But that got me thinking, what is the difference (if any) between granting a user
SELECT permission at a database level, or adding them to the
db_datareader role? And is there any best practice one way or the other?