Pular para o conteúdo principal

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

Banco de DadosMySQL
Código
fc028453
Banca
FCC
Órgão
CREMESP
Ano
2016
Nível
Superior
Cargo
Analista de Tecnologia da Informação - Banco de Dados
O mecanismo de hash da senha do MySQL foi atualizado para fornecer maior segurança e reduzir os riscos de senhas serem roubadas. Ao ser solicitado a dar explicações sobre hash de senhas, um Administrador de Banco de Dados MySQL afirmou que
  1. Adepois que o usuário conecta, se tiver privilégios suficientes, ele pode usar PASSWORD() para gerar um hash da senha no formato novo ou usar as instruções CREATE USER, GRANT ou SET PASSWORD.
  2. Bantes do MySQL 4.0, o hash de senha calculado pela função PASSWORD() possuía tamanho de 16 bits.
  3. Cao atualizar uma instalação mais antiga para a versão 5.7, deve-se executar o script mysql_fix_priv_tables para atualizar o tamanho da coluna Password de 16 para 41 bits.
  4. Duma coluna Password mais larga pode armazenar hashes de senha apenas no formato novo, e o script de atualização altera os valores das senhas existentes, gerando incompatibilidade.
  5. Ea partir do MySQL 5.1, a função PASSWORD() foi modificada para produzir um valor hash de 41 bits e os hashes de senha no novo formato sempre começam com um caracter ‘#’.
Revelar gabarito e comentário

GabaritoA — depois que o usuário conecta, se tiver privilégios suficientes, ele pode usar PASSWORD() para gerar um hash da senha no formato novo ou usar as instruções CREATE USER, GRANT ou SET PASSWORD.

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”.

Mecanismo de hash de senhas no MySQL

SE LIGUE NESSA!

A questão depende de conhecimento técnico específico sobre o MySQL que não está presente no contexto fornecido. A resolução abaixo segue o gabarito oficial (letra A) e analisa as alternativas com base no conhecimento geral do tema.

Gabarito: letra A. A alternativa A descreve corretamente que, após a conexão, um usuário com privilégios suficientes pode gerar hash de senha usando a função PASSWORD() ou as instruções CREATE USER, GRANT ou SET PASSWORD. Esse é o comportamento padrão do MySQL para gerenciamento de senhas.

Alternativa A — ✅ Correta ⟵ GABARITO

A afirmação reflete a funcionalidade real do MySQL: usuários com privilégio CREATE USER ou GRANT podem definir senhas usando PASSWORD() ou as instruções mencionadas. Não há erro na descrição.

Alternativa B — ❌ Incorreta

Afirma que antes do MySQL 4.0 o hash da função PASSWORD() tinha 16 bits. Isso é incorreto. Historicamente, o hash era de 16 bytes (128 bits) ou 45 bytes em versões muito antigas, nunca 16 bits. A banca trocou a unidade de medida, provavelmente confundindo com o número de caracteres hexadecimais.

Alternativa C — ❌ Incorreta

Diz que o script mysql_fix_priv_tables atualiza a coluna Password de 16 para 41 bits. Na verdade, o script correto em versões recentes é mysql_upgrade, e a coluna Password armazena hashes em formato de string (41 caracteres hexadecimais) e não bits. Além disso, o tamanho antigo era de 45 ou 16 bytes, não 16 bits.

Alternativa D — ❌ Incorreta

Alega que uma coluna Password mais larga só armazena hashes no formato novo e que o script de atualização altera as senhas existentes, gerando incompatibilidade. Isso é falso: a coluna pode armazenar ambos os formatos (novo e antigo), e o script de atualização não modifica as senhas já existentes – apenas altera a estrutura da tabela para aceitar o novo formato.

Alternativa E — ❌ Incorreta

Afirma que a partir do MySQL 5.1 a função PASSWORD() produz um hash de 41 bits e que o hash começa com '#'. Na verdade, o hash passou a ter 41 caracteres hexadecimais (não bits) e começa com '*' (asterisco), não com '#'. O caractere '#' não é utilizado como prefixo de hash de senha no MySQL.

Gabarito: letra A.

Link permanente: /questoes/fc028453