A documentação da Microsoft diz sobre db_datareader
a função que:
db_datareader
: Membros da função de banco de dados fixa db_datareader podem ler todos os dados de todas as tabelas e visualizações de usuário. Objetos de usuário podem existir em qualquer esquema, exceto sys e INFORMATION_SCHEMA.
A última frase é confusa para mim. Acho que significa que usuários cuja única função é db_datareader não podem consultar coisas dentro de INFORMATION_SCHEMA, mas criei um usuário com apenas essa função para um banco de dados e executei com sucesso consultas como abaixo naquele banco de dados:
SELECT * FROM INFORMATION_SCHEMA.TABLES
Isso não contradiz a última frase? Qual é a interpretação correta da última frase?