I was asked to grant SELECT
, INSERT
and UPDATE
to a given user for all tables in a database. I ended up adding the user to db_datareader
and granting them INSERT
and 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?