We have a SQL Server database with an HR schema that contains human resources data. It includes salary and other private information. Database owners, sysadmins, and members of an [Executives] role are allowed to see the HR schema.
Some of the other users are members of the db_datareader role which has the ability to read the data from any table of the database. They were added to the role before the HR security requirement existed.
What is a strategy to deny access to all other users?
limited_db_datareader
grantedSELECT
on all schemas except HR.