Visões (Views) em Banco de Dados Relacional
Gabarito: letra B. O mecanismo descrito é exatamente uma visão (view), que permite criar uma tabela virtual baseada em uma consulta, restringindo colunas e linhas conforme a necessidade. No exemplo, o proprietário A cria uma visão (M) contendo apenas os campos desejados e concede SELECT sobre ela a B. Para limitar tuplas, cria outra visão (M') com uma condição WHERE. Isso é a essência do uso de visões para controle de acesso discricionário.
Alternativa A — ❌ Incorreta
GRANT é um comando da DCL (Data Control Language) usado para conceder privilégios diretamente sobre objetos existentes, mas não cria um novo objeto que encapsule a restrição. O enunciado fala em criar um "mecanismo M" que inclua apenas alguns campos ou tuplas, o que é feito por uma visão, não por um comando GRANT.
Alternativa B — ✅ Correta ⟵ GABARITO
Visão (view) é exatamente o recurso que permite definir uma tabela virtual a partir de uma consulta SELECT, podendo restringir colunas (projeção) e linhas (seleção). O proprietário A cria uma view M com os atributos desejados e concede privilégios sobre ela, controlando o acesso de forma granular.
Alternativa C — ❌ Incorreta
Esquema (schema) é o conjunto de objetos de banco de dados (tabelas, visões, índices, etc.) pertencentes a um usuário. Não é um mecanismo de autorização, mas sim uma estrutura organizacional.
Alternativa D — ❌ Incorreta
REVOKE é o comando oposto a GRANT, usado para retirar privilégios. Não cria nenhum mecanismo de limitação de acesso, apenas revoga permissões já concedidas.
Alternativa E — ❌ Incorreta
Polinstanciação (polyinstantiation) é um conceito de segurança em banco de dados multinível, onde múltiplas instâncias de dados com diferentes classificações podem existir para o mesmo identificador. Não se relaciona com a criação de uma visão para restringir acesso.
Gabarito: letra B.