Pular para o conteúdo principal

Questão de Banco de Dados — Consultas e Comandos em SQL — CESPE / CEBRASPE 2024

Banco de DadosConsultas e Comandos em SQL
Código
ce403619
Banca
CESPE / CEBRASPE
Órgão
MPO
Ano
2024
Cargo
APO ( )
Considerando a linguagem SQL, julgue o item subsequente.   A execução do comando SQL mostrado a seguir disponibilizará para seleção somente os campos cod_professor e nome_professor da tabela professores a todos os usuários.   GRANT SELECT (cod_professor, nome_professor) ON professores TO public;
  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 Privilégios de Coluna

Gabarito: Certo. O comando GRANT SELECT (cod_professor, nome_professor) ON professores TO public; concede o privilégio de seleção apenas sobre as colunas especificadas, e não sobre a tabela inteira. Isso está de acordo com a sintaxe padrão do SQL, que permite a concessão de privilégios em nível de coluna. A questão trata de um comando da DCL (Data Control Language), cujos principais comandos são GRANT e REVOKE.

O comando GRANT é utilizado para conceder privilégios de acesso a usuários ou roles. A sintaxe básica é GRANT <privilégio> ON <objeto> TO <usuário>. Quando se especifica uma lista de colunas entre parênteses após o privilégio, como SELECT (cod_professor, nome_professor), o privilégio fica restrito àquelas colunas. Isso significa que o usuário (ou, no caso, public, que representa todos os usuários) poderá executar SELECT apenas nas colunas cod_professor e nome_professor da tabela professores, não tendo acesso às demais colunas da tabela.

Essa funcionalidade é importante para o controle de segurança e privacidade dos dados, permitindo que se limite o acesso a informações sensíveis. Por exemplo, se a tabela professores tiver uma coluna salario, o administrador pode conceder acesso apenas às colunas cod_professor e nome_professor, evitando que usuários vejam os salários.

É importante distinguir a concessão de privilégio em nível de coluna da concessão em nível de tabela. Se o comando fosse GRANT SELECT ON professores TO public;, o privilégio seria sobre todas as colunas da tabela. A especificação das colunas restringe o escopo do privilégio.

A pegadinha desta questão está em reconhecer que a sintaxe com lista de colunas é válida e que ela restringe o privilégio. Muitos candidatos podem pensar que o comando está errado por não ser uma sintaxe comum, mas é uma funcionalidade prevista no padrão SQL e suportada pela maioria dos SGBDs, como Oracle, PostgreSQL e SQL Server.

1Nível de tabela
SELECT ON tabela
Acesso a todas as colunas
2Nível de coluna
SELECT (col1, col2) ON tabela
Acesso restrito às colunas listadas
3Destinatário
Usuário específico
public (todos os usuários)
GRANT (DCL)
LEVELsoulevel.com.br
GRANT (DCL): Nível de tabela (SELECT ON tabela, Acesso a todas as colunas); Nível de coluna (SELECT (col1, col2) ON tabela, Acesso restrito às colunas listadas); Destinatário (Usuário específico, public (todos os usuários))

Item — ✅ CERTO

O comando apresentado está correto. A sintaxe GRANT SELECT (coluna1, coluna2) ON tabela TO usuário é válida e concede o privilégio de seleção apenas sobre as colunas listadas. Portanto, a afirmação de que "disponibilizará para seleção somente os campos cod_professor e nome_professor" está correta.

SE LIGUE NESSA!

O comando GRANT faz parte da DCL (Data Control Language), que controla os aspectos de autorização de dados e licenças de usuários. Os principais comandos da DCL são GRANT e REVOKE.

Gabarito: Certo

Link permanente: /questoes/ce403619