Questão nº 70
Questão de Tecnologia da Informação · FGV TCE-GO 2024 (nº 70)
Considere um banco de dados relacional de um tribunal, na qual nenhum usuário, a menos do DBA, possua algum privilégio sobre. O DBA concedeu direito de criação de tabelas ao usuário USR_0010, que, por sua vez, criou as tabelas DADOS_PROCESSO e DADOS_PARTE.
Logo após a criação, o usuário USR_0010 executou os seguintes comandos da DCL (Data Control Language) da linguagem SQL no sistema gerenciador de banco de dados, referentes aos usuários USR_0011 e USR_0100:
GRANT SELECT, UPDATE ON DADO_PARTE TO USR_0011;
GRANT SELECT ON DADOS_PARTE TO USR_0100;
GRANT SELECT, INSERT, DELETE, UPDATE ON DADOS_PROCESSO TO USR_0011;
GRANT SELECT, UPDATE ON DADOS_PROCESSO TO USR_0100 WITH GRANT OPTION;
Na sequência, o usuário USR_0100 executou o seguinte comando:
GRANT UPDATE ON DADOS_PROCESSO TO USR_00101;
Por fim, o DBA executou o comando:
REVOKE UPDATE ON DADOS_PROCESSO FROM USR_0100;
Considerando esse cenário, qual situação é válida para as permissões referentes às tabelas DADOS_PROCESSO e DADOS_PARTE?
- AO usuário USR_0011 tem direito de inserção na tabela DADOS_PARTE.
- BO usuário USR_0100 tem direito de atualização na tabela DADOS_PROCESSO, mas sem direito de propagação.
- CO usuário USR_0100 tem direito de consulta na tabela DADOS_PROCESSO, com direito de propagação. (alternativa correta)
- DO usuário USR_0101 tem direito de atualização na tabela DADOS_PROCESSO.
- EO usuário USR_0101 tem direito de consulta na tabela DADOS_PROCESSO.
Resposta comentada
Gabarito Alternativa C
O GRANT concede permissões a usuários, o REVOKE as remove. A cláusula WITH GRANT OPTION permite que o usuário que recebeu a permissão possa repassá-la a outros. Quando um privilégio é revogado de um usuário que o repassou (WITH GRANT OPTION), todas as permissões que ele concedeu com base nesse privilégio específico também são revogadas em cascata.
- (A) Incorreta: O usuário USR_0010 concedeu
SELECT, UPDATE ON DADO_PARTE TO USR_0011;. Não foi concedido o direito deINSERT(inserção) na tabela DADOS_PARTE para USR_0011. - (B) Incorreta: O usuário USR_0010 concedeu
SELECT, UPDATE ON DADOS_PROCESSO TO USR_0100 WITH GRANT OPTION;. No entanto, o DBA executouREVOKE UPDATE ON DADOS_PROCESSO FROM USR_0100;, removendo o direito de atualização de USR_0100. - (C) Correta: O usuário USR_0010 concedeu
SELECT, UPDATE ON DADOS_PROCESSO TO USR_0100 WITH GRANT OPTION;. O comandoREVOKEsubsequente do DBA removeu apenas o privilégioUPDATEde USR_0100. O privilégioSELECT(consulta) e a capacidade de propagá-lo (WITH GRANT OPTION) permanecem para USR_0100 na tabela DADOS_PROCESSO, pois não foram explicitamente revogados. - (D) Incorreta: O usuário USR_0100 concedeu
UPDATE ON DADOS_PROCESSO TO USR_00101;porque tinha o privilégioUPDATE WITH GRANT OPTION. Contudo, quando o DBA executouREVOKE UPDATE ON DADOS_PROCESSO FROM USR_0100;, o privilégioUPDATEde USR_0100 foi removido. Como USR_0100 havia concedido oUPDATEa USR_00101 com base nesse privilégio, a revogação de USR_0100 cascateia, removendo também oUPDATEde USR_00101. Essa é a principal armadilha da questão. - (E) Incorreta: O usuário USR_0100 concedeu apenas
UPDATE ON DADOS_PROCESSO TO USR_00101;. Não foi concedido o direito deSELECT(consulta) a USR_00101.
Fonte: FGV TCE-GO 2024 Analista de Controle Externo - Tecnologia da Informação (Caderno Tipo 1). Reproduzida para fins de estudo.