SIM! Você fez exatamente para trás. Remova o usuário da função datareader (que, como você descobriu, as concessões selecionam para o banco de dados inteiro) e conceda acesso somente a essa tabela.
USE MyDB
GRANT SELECT ON dbo.MyTable to JoeUser
Ou no SQL Server Management Studio
- Clique com o botão direito na tabela e obtenha propriedades
- Clique em Permissões no menu à esquerda
- Clique em Pesquisar e encontre seu usuário
- Coloque um cheque na coluna Concessão na linha que diz Selecionar