Pular para o conteúdo principal

Questão de Banco de Dados — MySQL — FCC 2016

Banco de DadosMySQL
Código
fc028438
Banca
FCC
Órgão
CREMESP
Ano
2016
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Banco de Dados
No shell do MySQL instalado em uma máquina local, para o usuário root conceder ao usuário paulo, que tem senha paulo1234, apenas permissão para executar comandos SELECT nas tabelas do Banco de Dados empresa, utiliza-se a instrução
  1. AGRANT SELECT TO empresa ALL TABLES TO USER paulo@localhost WITH PASSWORD 'paulo1234';
  2. BGRANT SELECT TO empresa.* FOR USER paulo@localhost PASSWORD BY 'paulo1234';
  3. CGRANT SELECT ON empresa.* TO USER paulo@localhost IDENTIFIED BY PASSWORD 'paulo1234';
  4. DGRANT ON empresa.SELECT TO paulo@localhost IDENTIFIED BY 'paulo1234';
  5. EGRANT SELECT ON empresa.* TO paulo@localhost IDENTIFIED BY 'paulo1234';
Revelar gabarito e comentário

GabaritoE — GRANT SELECT ON empresa.* TO paulo@localhost IDENTIFIED BY 'paulo1234';

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 GRANT no MySQL

Gabarito: letra E. A sintaxe correta no MySQL para conceder privilégios e criar o usuário (se não existir) com senha é: GRANT <privilégios> ON <banco>.<tabela> TO <usuário>@<host> IDENTIFIED BY '<senha>'. A alternativa E reproduz exatamente essa estrutura.

A banca testa o conhecimento da sintaxe do comando GRANT no MySQL, que faz parte da DCL (Data Control Language). A forma padrão para conceder permissões e definir a senha do usuário em um único comando é:

MySQL:

GRANT SELECT ON empresa.* TO paulo@localhost IDENTIFIED BY 'paulo1234';

Observe que empresa.* indica todas as tabelas do banco empresa.

  1. 1GRANT [privilégios]
  2. 2ON [banco].[tabela]
  3. 3TO [usuário]@[host]
  4. 4IDENTIFIED BY '[senha]'
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A sintaxe está completamente errada: a palavra TO aparece após SELECT de forma inadequada, ALL TABLES não é cláusula válida, e WITH PASSWORD não é a forma correta para definir senha no GRANT.

Alternativa B — ❌ Incorreta

Usa FOR USER em vez de TO user@host e PASSWORD BY não existe na sintaxe MySQL.

Alternativa C — ❌ Incorreta

Inclui IDENTIFIED BY PASSWORD, que é usado para fornecer um hash de senha, não a senha em texto claro. Como a questão informa a senha 'paulo1234' (texto claro), o correto é IDENTIFIED BY 'paulo1234'.

Alternativa D — ❌ Incorreta

A ordem dos elementos está trocada: ON empresa.SELECT não é válido. O privilégio (SELECT) deve vir antes de ON.

Alternativa E — ✅ Correta ⟵ GABARITO

Segue exatamente a sintaxe correta: GRANT SELECT ON empresa.* TO paulo@localhost IDENTIFIED BY 'paulo1234';.

PEGA ESSA DICA!

Decore a estrutura básica do GRANT: GRANT [privilégios] ON [banco].[tabela] TO [usuário]@[host] [IDENTIFIED BY 'senha']. O uso de IDENTIFIED BY no GRANT já cria o usuário caso ele não exista, estabelecendo a senha em texto claro. Para usar senha já criptografada, utilizar-se-ia IDENTIFIED BY PASSWORD 'hash'.

Gabarito: letra E.

Link permanente: /questoes/fc028438