Questão de Banco de Dados — Conceitos Básicos em Banco de Dados — FCC 2022
Banco de Dados›Conceitos Básicos em Banco de Dados
Código
fc062368
Banca
FCC
Órgão
PGE-AM
Ano
2022
Cargo
Técnico em Gestão Procuratorial Especialidade Informática
Em SQL, para definir que o usuário Paulo001 não possa executar instruções SELECT em nenhuma tabela, utiliza-se a instrução
AREVOKE SELECT TO Paulo001;
BBLOCK USER Paulo001 TO SELECT;
CGRANT USER Paulo001 ALLOWED=FALSE TO SELECT;
DDENY SELECT TO Paulo001;
EROLLBACK SELECT TO Paulo001;
Revelar gabarito e comentário▾
GabaritoD — DENY SELECT TO Paulo001;
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: Comandos de Controle de Acesso (DCL) — Negação de Privilégios
Gabarito: letra D. Para impedir que um usuário execute consultas (SELECT) em qualquer tabela, usa-se o comando DENY SELECT TO Paulo001; — específico de SGBDs como SQL Server, que cria uma negação explícita que prevalece sobre permissões concedidas. Alternativas incorretas: REVOKE só retira uma permissão já concedida (não impede futuras), e as demais opções não existem na sintaxe SQL padrão ou de mercado.
A banca cobra o conhecimento de comandos DCL (Data Control Language) — GRANT, REVOKE e, em alguns bancos como SQL Server, DENY. O enunciado pede "não possa executar instruções SELECT em nenhuma tabela", ou seja, uma proibição explícita. Vejamos cada alternativa:
Alternativa A — ❌ Incorreta
REVOKE SELECT TO Paulo001; — Sintaxe inválida. O comando REVOKE exige a preposição FROM, não TO. Além disso, REVOKE apenas retira uma permissão previamente concedida; não cria uma negação. Se o usuário receber um novo GRANT, ele voltará a ter acesso.
Alternativa B — ❌ Incorreta
BLOCK USER Paulo001 TO SELECT; — Não é um comando SQL válido em nenhum SGBD mainstream. Não faz parte da DCL.
Alternativa C — ❌ Incorreta
GRANT USER Paulo001 ALLOWED=FALSE TO SELECT; — Gramática inexistente. GRANT não aceita cláusula ALLOWED=FALSE; a concessão de privilégios é sempre positiva (GRANT SELECT TO ...).
Alternativa D — ✅ Correta ⟵ GABARITO
DENY SELECT TO Paulo001; — Comando válido no SQL Server e em alguns outros SGBDs (como Sybase). A cláusula DENY cria uma negação explícita que prevalece sobre qualquer GRANT. Com ele, Paulo001 não conseguirá executar SELECT em nenhuma tabela do banco, mesmo que tenha recebido permissão por meio de GRANT. É a única alternativa que resolve a questão de forma direta.
Alternativa E — ❌ Incorreta
ROLLBACK SELECT TO Paulo001; — ROLLBACK é um comando de transação (TCL), não de controle de acesso. Não serve para gerenciar permissões.
PEGA ESSA DICA!
Em concursos, fique atento à diferença entre REVOKE e DENY. O REVOKE remove uma permissão existente; o DENY cria uma proibição explícita que se sobrepõe a qualquer GRANT. Se o enunciado pedir "impedir que execute SELECT", a resposta é DENY. Se pedir "retirar a permissão concedida", é REVOKE. Lembre-se: SQL Server usa DENY; Oracle/MySQL usam REVOKE para remover, mas não têm comando de negação explícita.