Questão nº 36

Questão de Tecnologia da Informação · FGV TJ-MS 2024 (nº 36)

FGV2024Técnico de Nível Superior - Analista de Banco de DadosTecnologia da Informação
Gabarito: Bver comentário ↓

Observe o script de criação e concessão de privilégios em Oracle:

----conexão no banco de dados xpto
CONNECT adm@xpto
----criação de usuário no banco de dados xpto
CREATE USER user1
IDENTIFIED BY senha1
DEFAULT TABLESPACE "usr_dados"
TEMPORARY TABLESPACE "temp"
ACCOUNT UNLOCK;
GRANT CONNECT TO user1;
GRANT SELECT ANY TABLE TO user1;
GRANT DELETE, UPDATE, INSERT ON apl.tab1 TO user1;
GRANT DELETE, UPDATE, INSERT ON apl.tab2 TO user1;
REVOKE SELECT ON apl.tab2 FROM user1;

Após a execução do script apresentado, é correto afirmar que "user1" tem permissão de executar qualquer Data Manipulation Language (DML):

Resposta comentada

Gabarito Alternativa B

Privilégios em Oracle são permissões que controlam o que um usuário pode fazer no banco de dados. Existem privilégios de sistema (que afetam muitos objetos, como SELECT ANY TABLE) e privilégios de objeto (que afetam um objeto específico, como INSERT ON apl.tab1). O comando GRANT concede privilégios e REVOKE os remove, mas a hierarquia e a especificidade dos privilégios são cruciais para entender o resultado final.

  • (A) Incorreta: "temp" é um tablespace (espaço de armazenamento), não uma tabela. Não se executa DML (Data Manipulation Language) diretamente em tablespaces.
  • (B) Correta: Para a tabela "apl.tab1", user1 recebeu explicitamente os privilégios de DELETE, UPDATE e INSERT. Além disso, o privilégio de sistema SELECT ANY TABLE permite que user1 execute SELECT em apl.tab1. Assim, user1 possui todas as operações DML (INSERT, UPDATE, DELETE) e SELECT na tabela apl.tab1.
  • (C) Incorreta: Para a tabela "apl.tab2", user1 recebeu os privilégios de DELETE, UPDATE e INSERT. A linha REVOKE SELECT ON apl.tab2 FROM user1; é a armadilha da banca. Embora em um cenário real de Oracle o privilégio de sistema SELECT ANY TABLE ainda permitiria o SELECT em apl.tab2 (pois privilégios de sistema geralmente se sobrepõem a revogações de privilégios de objeto específicos se o privilégio de objeto não foi concedido primeiro), a intenção da questão é que esta revogação específica de SELECT torne a tabela "apl.tab2" incompleta em termos de "qualquer DML" (assumindo que "qualquer DML" inclui SELECT). Portanto, user1 não teria todas as operações de manipulação de dados (incluindo SELECT) na apl.tab2 conforme a interpretação da questão.
  • (D) Incorreta: "usr_dados" é um tablespace, não uma tabela. Não se executa DML diretamente em tablespaces.
  • (E) Incorreta: user1 tem SELECT ANY TABLE, mas não possui privilégios de sistema como INSERT ANY TABLE, UPDATE ANY TABLE ou DELETE ANY TABLE. Portanto, não pode executar qualquer DML (INSERT, UPDATE, DELETE) em todas as tabelas do banco de dados xpto.

Fonte: FGV TJ-MS 2024 Técnico de Nível Superior - Analista de Banco de Dados (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