Questão de Banco de Dados — MySQL — VUNESP 2024
- Código
- vu212043
- Banca
- VUNESP
- Órgão
- SPTrans
- Ano
- 2024
- Cargo
- Tec ( )
- AFLOAT e NULL.
- BENUM e BLOB.
- CINSTANCE e JSON.
- DLOAD e DELETE.
- EGRANT e REVOKE.
GabaritoE — GRANT e REVOKE.
Gabarito: letra E. No MySQL 8.0, o comando GRANT é utilizado para atribuir privilégios de acesso a usuários e papéis (roles), enquanto o comando REVOKE é utilizado para retirar esses privilégios. Ambos fazem parte da sublinguagem DCL (Data Control Language) do SQL, que controla a autorização de dados e as permissões de usuários.
A DCL (Data Control Language) é a parte do SQL responsável por gerenciar as permissões de acesso aos objetos do banco de dados. Ela define quem pode visualizar ou manipular dados, garantindo a segurança e a integridade do sistema. Os dois comandos principais dessa sublinguagem são exatamente o GRANT e o REVOKE, que atuam de forma complementar: o primeiro concede permissões, e o segundo as revoga.
O comando GRANT permite que usuários ou papéis especificados executem tarefas específicas, como SELECT, INSERT, UPDATE, DELETE, entre outras. Sua sintaxe básica envolve a lista de privilégios, o objeto (tabela ou visão) e o destinatário (usuário ou papel). Por exemplo, para conceder o privilégio de consulta na tabela clientes ao usuário financeiro, utiliza-se: GRANT SELECT ON clientes TO financeiro;. É possível também conceder privilégios apenas a colunas específicas, indicando os nomes das colunas entre parênteses após o nome da tabela, e a opção WITH GRANT OPTION permite que o beneficiário repasse o privilégio a outros usuários.
O comando REVOKE, por sua vez, é usado para cancelar permissões concedidas anteriormente, retirando os privilégios de acesso fornecidos pelo GRANT. Sua sintaxe é semelhante, mas utiliza a cláusula FROM para indicar o usuário ou papel que terá o privilégio removido. Por exemplo, para revogar o privilégio de exclusão na tabela clientes do usuário financeiro, utiliza-se: REVOKE DELETE ON clientes FROM financeiro;.
A pegadinha desta questão está em reconhecer que os comandos corretos são GRANT e REVOKE, e não se confundir com outros comandos SQL, como FLOAT, ENUM, BLOB, INSTANCE, JSON, LOAD e DELETE, que não têm relação com a atribuição ou retirada de privilégios. FLOAT, ENUM e BLOB são tipos de dados; INSTANCE e JSON são conceitos relacionados a instâncias de banco de dados e formato de dados; LOAD é um comando para carregar dados; e DELETE é um comando DML para remover registros.
Guarde a distinção: GRANT = conceder/atribuir privilégios; REVOKE = revogar/retirar privilégios. É exatamente essa fronteira que separa a alternativa correta das demais.
FLOAT e NULL não são comandos SQL. FLOAT é um tipo de dado numérico de ponto flutuante, e NULL é uma palavra-chave que representa ausência de valor. Nenhum deles tem relação com a atribuição ou retirada de privilégios.
ENUM e BLOB também são tipos de dados, não comandos. ENUM é um tipo de dado que permite definir uma lista de valores possíveis, e BLOB (Binary Large Object) é usado para armazenar dados binários. Não se aplicam ao controle de privilégios.
INSTANCE e JSON não são comandos para gerenciar privilégios. INSTANCE refere-se a uma instância do banco de dados, e JSON é um formato de dados. Embora o MySQL 8.0 tenha suporte a JSON, isso não está relacionado à concessão ou revogação de permissões.
LOAD e DELETE são comandos SQL, mas não para controle de privilégios. LOAD é usado para carregar dados de um arquivo para uma tabela (como LOAD DATA INFILE), e DELETE é um comando DML para remover registros de uma tabela. Ambos pertencem a outras sublinguagens do SQL, não à DCL.
GRANT e REVOKE são os comandos da DCL (Data Control Language) responsáveis, respectivamente, por atribuir e retirar privilégios de acesso a objetos do banco de dados. O GRANT concede permissões a usuários ou papéis, enquanto o REVOKE as remove. Essa é a definição clássica e a resposta correta para a questão.
Para memorizar, associe GRANT a "dar" (conceder) e REVOKE a "revogar" (retirar). Ambos são comandos da DCL, que controla permissões. Na prova, desconfie de alternativas que tragam tipos de dados (FLOAT, ENUM, BLOB) ou comandos de outras sublinguagens (DELETE, LOAD) — a banca tenta confundir o candidato com termos que não pertencem ao contexto de privilégios.
Gabarito: letra E
Link permanente: /questoes/vu212043