Questão nº 63

Questão de Tecnologia da Informação · FGV TJ-SE Servidor 2023 (nº 63)

FGV2023Analista Judiciário - Análise de Sistemas - Suporte Técnico em InfraestruturaTecnologia da Informação
Gabarito: Bver comentário ↓

Observe o seguinte script de concessão de privilégios em MySQL a seguir.

CREATE DATABASE db;
CREATE TABLE db.t1 (c INT);
INSERT INTO db.t1 VALUES ROW (1);
CREATE TABLE db.t2 (c INT);
INSERT INTO db.t2 VALUES ROW (1);
CREATE USER u1;
GRANT SELECT, UPDATE ON db.t1 TO u1;
CREATE USER u2;
GRANT ALL PRIVILEGES ON db.t2 TO u2;
CREATE USER u3;
GRANT SELECT, INSERT, UPDATE ON db.* TO u3 WITH GRANT OPTION;
REVOKE INSERT ON db.t2 FROM u2;

Após a execução do script apresentado, é correto afirmar que o(s) usuário(s):

Resposta comentada

Gabarito Alternativa B

Privilégios em MySQL definem quais ações um usuário pode realizar em objetos (como bancos de dados ou tabelas). A cláusula `WITH GRANT OPTION` é fundamental, pois ela permite que um usuário não apenas execute certas ações, mas também conceda esses mesmos privilégios a outros usuários.

A) Incorreta: O usuário `u2` possui privilégios apenas sobre a tabela `db.t2` (e mesmo assim, não tem `INSERT` nela), e não sobre `db.t1`.
(B) Correta: O usuário `u3` foi concedido `INSERT` sobre `db.` (todas as tabelas do banco `db`) COM A OPÇÃO DE CONCEDER (`WITH GRANT OPTION`). Isso significa que `u3` pode conceder o privilégio de `INSERT` (que ele mesmo possui) sobre qualquer tabela do banco `db` (incluindo `db.t1`) para outro usuário, como `u1`.
C) Incorreta: Embora `u2` possua o privilégio `DELETE` na tabela `db.t2` (pois `ALL PRIVILEGES` foi concedido e `DELETE` não foi revogado), ele não recebeu a cláusula `WITH GRANT OPTION` junto com seus privilégios. Sem `WITH GRANT OPTION`, um usuário não pode conceder privilégios a outros. Armadilha da banca: A tentação aqui é pensar que "ALL PRIVILEGES" inclui a capacidade de conceder privilégios. No MySQL, `ALL PRIVILEGES` em um objeto (como uma tabela) não inclui `GRANT OPTION` por padrão; esta deve ser concedida explicitamente.
D) Incorreta: O usuário `u1` possui `UPDATE` apenas sobre `db.t1`, não sobre `db.t2`. Embora `u3` possa executar `UPDATE` em `db.t2` (pois tem `UPDATE ON db.
`), a afirmação é falsa porque `u1` não pode.
E) Incorreta: O script explicitamente revoga o privilégio `INSERT` de `u2` na tabela `db.t2` com a instrução `REVOKE INSERT ON db.t2 FROM u2;`. Portanto, `u2` não pode mais inserir dados nessa tabela.

Fonte: FGV TJ-SE Servidor 2023 Analista Judiciário - Análise de Sistemas - Suporte Técnico em Infraestrutura (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