Você está quase lá. Adicionar o usuário a db_datareader
e db_datawriter
de fato concede acesso global de leitura / gravação ao banco de dados.
Você precisará usar GRANT
para conceder acesso ao login para objetos específicos.
GRANT SELECT ON dbo.Table1 TO ExtraUser
GRANT INSERT ON dbo.Table1 TO ExtraUser
GRANT UPDATE ON dbo.Table1 TO ExtraUser
GRANT DELETE ON dbo.Table1 TO ExtraUser
Você também pode combinar as permissões conforme necessário:
GRANT SELECT,INSERT,UPDATE,DELETE on dbo.Table1 to ExtraUser
Observação: você precisará executar isso para cada tabela à qual deseja permitir o acesso
Mais informações sobre GRANT
podem ser encontradas aqui .
EDITAR:
Em resposta à sua edição, sim. Ele restringirá o usuário a essas permissões, desde que você também não conceda algo mais avassalador (como adicionar o login a db_datareader
e db_datawriter
). Se tiver, revogue as permissões de nível superior usando REVOKE
.