Pular para o conteúdo principal

Questão de Banco de Dados — SQL — CESPE / CEBRASPE 2024

Banco de DadosSQL
Código
ce178299
Banca
CESPE / CEBRASPE
Órgão
MPO
Ano
2024
Nível
Superior
Cargo
Analista de Planejamento e Orçamento - Especialidade: Gestão de Infraestrutura de TI
Considerando a linguagem SQL, julgue o item subsequente.disponibilizará para seleção somente os campos cod_professor e nome_professor da tabela professores a todos os usuários.Imagem da questão
  1. CCerto
  2. EErrado
Revelar gabarito e comentário

GabaritoC — Certo

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

SQL: Comando GRANT e controle de acesso

Gabarito: Certo (C). O comando GRANT SELECT (cod_professor, nome_professor) ON professores TO PUBLIC concede o privilégio de seleção apenas sobre as colunas especificadas da tabela professores a todos os usuários, exatamente como descreve o item. A sintaxe do GRANT permite listar as colunas após o comando SELECT, restringindo o acesso a elas.

O comando GRANT é uma instrução da sublinguagem DCL (Data Control Language), responsável pelo controle de permissões e segurança no banco de dados. Ele serve para conceder privilégios a usuários ou roles, podendo especificar quais operações (SELECT, INSERT, UPDATE, DELETE, etc.) e, no caso do SELECT, quais colunas específicas da tabela estarão acessíveis. A sintaxe básica é:

GRANT SELECT (coluna1, coluna2) ON tabela TO usuário;

Quando se lista colunas após o SELECT, o privilégio fica restrito àquelas colunas. Se nenhuma coluna for listada, o privilégio se aplica a todas as colunas da tabela. O destinatário PUBLIC é um grupo especial que inclui todos os usuários do banco de dados, ou seja, a permissão é concedida a qualquer um que tenha acesso ao banco.

Na prática, se um administrador executar o comando GRANT SELECT (cod_professor, nome_professor) ON professores TO PUBLIC;, qualquer usuário poderá consultar apenas os campos cod_professor e nome_professor da tabela professores. Tentativas de selecionar outras colunas, como email ou telefone, serão negadas por falta de privilégio. Isso é uma forma de implementar segurança em nível de coluna, protegendo dados sensíveis enquanto permite acesso a informações não críticas.

A pegadinha que a banca explora aqui é a confusão entre o GRANT com colunas e o GRANT sem colunas. Muitos candidatos leem o comando e pensam que ele concede acesso a toda a tabela, ignorando a lista de colunas. Outros podem confundir GRANT com REVOKE, que é o comando usado para retirar privilégios. A distinção é essencial: GRANT dá permissão, REVOKE tira. Além disso, é importante lembrar que o SELECT com colunas específicas é uma forma de projeção, limitando os atributos visíveis ao usuário.

Guarde a diferença entre conceder acesso a uma tabela inteira e conceder acesso a colunas específicas: é exatamente nessa distinção que a questão se apoia. O comando apresentado é válido e cumpre exatamente o que o item afirma.

1O que concede
Privilégio (SELECT, INSERT...)
Colunas específicas (projeção)
Tabela inteira (sem lista)
2A quem
Usuário específico
Role
PUBLIC (todos)
3Efeito
Acesso só às colunas listadas
Demais colunas negadas
4REVOKE (retira privilégio)
GRANT (DCL)
LEVELsoulevel.com.br
GRANT (DCL): O que concede (Privilégio (SELECT, INSERT...), Colunas específicas (projeção), Tabela inteira (sem lista)); A quem (Usuário específico, Role, PUBLIC (todos)); Efeito (Acesso só às colunas listadas, Demais colunas negadas); REVOKE (retira privilégio)

Item — ✅ CERTO

O item descreve corretamente o efeito do comando GRANT SELECT (cod_professor, nome_professor) ON professores TO PUBLIC. A sintaxe está correta: após o SELECT, são listadas as colunas permitidas; após o ON, a tabela; e após o TO, o destinatário PUBLIC. Isso concede a todos os usuários o privilégio de consultar apenas os campos cod_professor e nome_professor da tabela professores, exatamente como afirma o enunciado. Não há erro de sintaxe nem de semântica.

NÃO CAIA NESSA!

Para questões de GRANT, verifique sempre três elementos: (1) a operação permitida (SELECT, INSERT, etc.), (2) se há lista de colunas restringindo o acesso, e (3) o destinatário (usuário específico, role ou PUBLIC). Se a lista de colunas estiver presente, o privilégio é limitado a elas — essa é a pegadinha mais comum da banca.

Gabarito: Certo (C).

Link permanente: /questoes/ce178299