Questão nº 68

Questão de Tecnologia da Informação · FGV ALEP 2024 (nº 68)

FGV2024Analista Legislativo - Desenvolvedor de SistemasTecnologia da Informação
Gabarito: Bver comentário ↓

Seja o esquema de um banco de dados relacional seguinte, criado pelo usuário U1, que possui direito de criação de tabelas no ambiente:

```
AUTOR ( id_autor <PK>, nome_autor )
RELATORIO ( id_rel <PK>, conteudo, id_autor <FK>, data_registro )
```

Restrições de integridade:

Tabela AUTOR: id_autor é chave primária; nome_autor ≠ NULO.
Tabela RELATORIO: id_rel é chave primária; conteudo ≠ NULO; data_registro ≠ NULO; id_autor é chave estrangeira e referencia LOCALIDADE(id_loc).

Os usuários U2 e U3 receberam de U1 o direito de consulta e atualização nas tabelas AUTOR e RELATORIO. Dado que o usuário U2 desfruta da confiança de U1, ele recebeu o benefício de propagação dos direitos que recebeu. Já o usuário U4 recebeu de U1 apenas o direito de consulta na tabela RELATORIO. Mais adiante, o usuário U1 soube que o usuário U2 propagou o direito de atualização para o usuário U4 na tabela RELATORIO, sem que ele (usuário U1) tivesse conhecimento do fato. Tendo em vista a quebra de confiança, o usuário U1 decidiu revogar todos os direitos concedidos anteriormente a U2, deixando-o sem acesso ao seu banco de dados.
Considerando os mecanismos de segurança discricionários de sistemas de bancos de dados relacionais, assinale a opção que indica o comando SQL a seguir reflete alguma das situações descritas no contexto apresentado.

Resposta comentada

Gabarito Alternativa B

Em bancos de dados, o comando GRANT é usado para conceder permissões (privilégios) a usuários ou funções, como consultar (`SELECT`), inserir (`INSERT`), atualizar (`UPDATE`) ou excluir (`DELETE`) dados. A cláusula WITH GRANT OPTION permite que o usuário que recebeu a permissão possa, por sua vez, conceder essa mesma permissão a outros usuários. O comando REVOKE é usado para remover essas permissões.

(A) Incorreta: O contexto diz que U4 recebeu de U1 "apenas o direito de consulta na tabela RELATORIO", o que implica que não recebeu a capacidade de propagar esse direito. O comando `WITH GRANT OPTION` nesta alternativa contradiz essa informação.
(B) Correta: Esta alternativa reflete a situação em que U1 concedeu a U2 os direitos de consulta e atualização nas tabelas AUTOR e RELATORIO, e, crucialmente, U2 recebeu o "benefício de propagação dos direitos que recebeu" (indicado por `WITH GRANT OPTION`). Esta é uma das situações centrais descritas no problema.
(C) Incorreta: Esta alternativa descreve a concessão de direitos a U2 e U3, mas omite a cláusula `WITH GRANT OPTION` para U2. A capacidade de U2 de propagar direitos é um ponto chave do problema, e a ausência dessa cláusula torna o comando incompleto para descrever a situação de U2. Esta é a armadilha, pois descreve parcialmente a situação, mas falha no detalhe crucial que leva ao conflito.
(D) Incorreta: Este comando é um `REVOKE`, que descreve uma ação posterior no cenário (U1 revogando direitos de U2). A questão pede um comando que reflita "alguma das situações descritas", e o `GRANT` inicial a U2 com `GRANT OPTION` é uma situação fundamental. Além disso, a sintaxe `WITHOUT GRANT OPTION` não é padrão para o comando `REVOKE` em SQL para remover privilégios; `REVOKE` simplesmente remove os privilégios concedidos.
(E) Incorreta: O contexto afirma que U1 decidiu "revogar todos os direitos concedidos anteriormente a U2", não a U3. Portanto, este comando não reflete a ação de revogação descrita.

Fonte: FGV ALEP 2024 Analista Legislativo - Desenvolvedor de Sistemas (Caderno Tipo 1). Reproduzida para fins de estudo.

Continue estudando

Estudar é izi

Pratique milhares de questões como esta, de graça, com explicação e gamificação no Quizinho.

Estudar de graça no Quizinho