O comando do sistema gerenciador de banco de dados MYSQL v.8.0 que exibe os privilégios e papéis do usuário corrente de um banco de dados é:
ASHOW GRANTS FOR CURRENT USER;
BDISPLAYS GRANTS FOR CURRENT USER;
CSET REVOKES FOR CURRENT USER;
DMAKE GRANTS FOR CURRENT USER;
ESHOW REVOKES FOR CURRENT USER;
Revelar gabarito e comentário▾
GabaritoA — SHOW GRANTS FOR CURRENT USER;
Comentário gerado por IA. É um apoio ao estudo, ancorado em fontes, mas pode conter imprecisões — confira sempre na fonte oficial (lei, súmula, edital e gabarito da banca). Encontrou um erro? Use “Reportar”.
Comando SHOW GRANTS no MySQL
Gabarito: letra A. No MySQL 8.0, o comando que exibe os privilégios e papéis do usuário corrente é SHOW GRANTS FOR CURRENT_USER; — a sintaxe correta usa a palavra-chave SHOW (não DISPLAYS, SET ou MAKE) e o objeto GRANTS (não REVOKES), seguido da cláusula FOR CURRENT_USER. As demais alternativas ou usam verbos inexistentes no SQL ou trocam GRANTS por REVOKES, que é o comando de revogação de privilégios.
O MySQL é um dos SGBDs mais cobrados em concursos, e a banca explora aqui o conhecimento da sintaxe específica de um comando de administração de privilégios. Para entender a questão, é preciso dominar dois pontos: (1) a diferença entre os comandos GRANT e REVOKE da DCL (Data Control Language); e (2) a forma correta de consultar os privilégios de um usuário no MySQL.
A DCL é a sublinguagem do SQL responsável pelo controle de acesso aos dados. Seus dois comandos principais são:
GRANT: concede privilégios a um usuário ou papel (role). Por exemplo, GRANT SELECT ON banco.tabela TO 'usuario'; permite que o usuário leia os dados da tabela.
REVOKE: retira privilégios anteriormente concedidos. Por exemplo, REVOKE SELECT ON banco.tabela FROM 'usuario'; remove a permissão de leitura.
Esses comandos são essenciais para a administração de segurança do banco, e a banca frequentemente os cobra em questões de DCL. No entanto, a questão não pergunta como conceder ou revogar privilégios, mas sim como exibir os privilégios que um usuário possui. Para isso, o MySQL oferece o comando SHOW GRANTS.
A sintaxe básica é:
SHOW GRANTS FOR 'usuario'@'host';
Para o usuário corrente, a forma mais prática é:
SHOW GRANTS FOR CURRENT_USER;
Esse comando retorna uma lista com todos os privilégios e papéis atribuídos ao usuário que está executando a instrução. É uma ferramenta de diagnóstico e auditoria, muito utilizada por administradores de banco para verificar as permissões efetivas de uma conta.
A pegadinha da questão está em dois níveis: primeiro, o verbo — SHOW é o único correto; DISPLAYS, SET e MAKE não são comandos SQL válidos para essa finalidade. Segundo, o objeto — GRANTS é o que se exibe; REVOKES é o comando de revogação, não de exibição. A alternativa A é a única que combina o verbo e o objeto corretos.
DCL (controle de acesso): GRANT (Concede privilégios); REVOKE (Retira privilégios); SHOW GRANTS (Exibe privilégios e papéis, FOR CURRENT_USER)
Alternativa A — ✅ Correta ⟵ GABARITO
SHOW GRANTS FOR CURRENT USER; é exatamente a sintaxe do MySQL para listar os privilégios e papéis do usuário corrente. O comando SHOW GRANTS é o único que exibe permissões; CURRENT_USER refere-se à conta que está executando a instrução. É a forma mais direta e correta de atender ao enunciado.
Alternativa B — ❌ Incorreta
DISPLAYS GRANTS FOR CURRENT USER; — o verbo DISPLAYS não existe na linguagem SQL. O comando correto é SHOW, não DISPLAYS. A banca troca o verbo para confundir quem não conhece a sintaxe exata.
Alternativa C — ❌ Incorreta
SET REVOKES FOR CURRENT USER; — dois erros: o verbo SET é usado para atribuir valores a variáveis (ex.: SET @var = 1), não para exibir privilégios; e REVOKES é o comando de revogação, não de exibição. A alternativa mistura conceitos de DCL de forma incorreta.
Alternativa D — ❌ Incorreta
MAKE GRANTS FOR CURRENT USER; — o verbo MAKE não existe no SQL. Não há comando MAKE para essa finalidade. A banca inventa um verbo que não faz parte da linguagem.
Alternativa E — ❌ Incorreta
SHOW REVOKES FOR CURRENT USER; — o verbo SHOW está correto, mas o objeto REVOKES está errado. REVOKE é o comando que retira privilégios, não o que os exibe. O correto é SHOW GRANTS. A banca troca GRANTS por REVOKES para testar se o candidato sabe a diferença entre conceder, revogar e exibir.
NÃO CAIA NESSA!
A banca explora a confusão entre os comandos da DCL: GRANT (conceder), REVOKE (revogar) e SHOW GRANTS (exibir). O candidato que sabe que REVOKE é o oposto de GRANT pode ser induzido a escolher a alternativa E, que usa SHOW (verbo correto) mas troca o objeto. Lembre-se: para exibir privilégios, o comando é sempre SHOW GRANTS, nunca SHOW REVOKES.
PEGA ESSA DICA!
Para fixar, associe: GRANT = dar permissão; REVOKE = tirar permissão; SHOW GRANTS = mostrar permissões. Na prova, desconfie de verbos como DISPLAYS, MAKE ou SET — eles não fazem parte do vocabulário SQL para essa função. Se a alternativa trouxer SHOW REVOKES, lembre-se de que REVOKES não é um objeto exibível; o que se exibe são os GRANTS.