Pular para o conteúdo principal

Questão de Banco de Dados — Sublinguagens SQL (DDL, DML, DQL, DCL e DTL) — VUNESP 2023

Banco de DadosSublinguagens SQL (DDL, DML, DQL, DCL e DTL)
Código
vu195957
Banca
VUNESP
Órgão
CIJUN
Ano
2023
Cargo
Ana ( )
Considere que tenha sido criado um papel denominado Geral, no sistema gerenciador de banco de dados MS SQL Server 2022. O comando para incluir um membro denominado Geraldo nesse papel é
  1. AADD MEMBER Geraldo TO ROLE Geral;
  2. BMODIFY ROLE Geral PLUS Geraldo;
  3. CCHANGE ROLE Geral WITH Geraldo;
  4. DALTER ROLE Geral ADD MEMBER Geraldo;
  5. EINCLUDE MEMBER Geraldo IN ROLE Geral;
Revelar gabarito e comentário

GabaritoD — ALTER ROLE Geral ADD MEMBER Geraldo;

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

Comandos SQL: ALTER ROLE no SQL Server

Gabarito: letra D. No Microsoft SQL Server, o comando para adicionar um membro a um papel (role) é ALTER ROLE nome_do_papel ADD MEMBER nome_do_membro — a alternativa D reproduz exatamente essa sintaxe. As demais opções usam verbos ou estruturas que não existem na linguagem T-SQL do SQL Server para essa finalidade.

O SQL Server, como a maioria dos SGBDs relacionais, organiza a segurança em papéis (roles) e usuários (users). Um papel é um agrupamento lógico de permissões que pode ser atribuído a vários usuários de uma só vez, facilitando a administração de privilégios. Para gerenciar esses papéis, o SQL Server oferece comandos específicos da sublinguagem DCL (Data Control Language), que é a parte do SQL responsável pelo controle de acesso e permissões.

A sintaxe completa do comando ALTER ROLE no SQL Server é:

ALTER ROLE nome_do_papel ADD MEMBER nome_do_usuário;

Esse comando adiciona um usuário (ou outro papel) como membro do papel especificado. É importante notar que o comando ALTER ROLE também pode ser usado para remover um membro, com a sintaxe ALTER ROLE nome_do_papel DROP MEMBER nome_do_usuário;. Essa é a forma moderna e recomendada a partir do SQL Server 2012, substituindo os antigos procedimentos armazenados sp_addrolemember e sp_droprolemember.

A questão explora justamente o conhecimento da sintaxe correta desse comando. O candidato que conhece a estrutura ALTER ROLE ... ADD MEMBER ... identifica a alternativa D como a única correta. As outras alternativas apresentam verbos que não fazem parte do vocabulário SQL do SQL Server para essa operação, como ADD MEMBER (sem o ALTER ROLE), MODIFY ROLE, CHANGE ROLE e INCLUDE MEMBER.

Guarde a estrutura ALTER ROLE <papel> ADD MEMBER <membro> — é exatamente essa combinação de palavras-chave que a alternativa correta apresenta e que as demais distorcem.

  1. 1ALTER ROLE <papel>
  2. 2ADD MEMBER <membro>
  3. 3DROP MEMBER <membro>
LEVEL · soulevel.com.br

Alternativa A — ❌ Incorreta

A alternativa A (ADD MEMBER Geraldo TO ROLE Geral) está incorreta porque a sintaxe do SQL Server não usa ADD MEMBER como um comando autônomo. O comando correto é ALTER ROLE ... ADD MEMBER .... A estrutura apresentada não é válida em T-SQL.

Alternativa B — ❌ Incorreta

A alternativa B (MODIFY ROLE Geral PLUS Geraldo) está incorreta porque não existe o comando MODIFY ROLE no SQL Server para adicionar membros a um papel. O verbo MODIFY não é utilizado nesse contexto; a palavra-chave correta é ALTER.

Alternativa C — ❌ Incorreta

A alternativa C (CHANGE ROLE Geral WITH Geraldo) está incorreta porque não existe o comando CHANGE ROLE no SQL Server. O verbo CHANGE não é utilizado para gerenciar papéis; a sintaxe correta usa ALTER ROLE.

Alternativa D — ✅ Correta ⟵ GABARITO

A alternativa D (ALTER ROLE Geral ADD MEMBER Geraldo) está correta porque reproduz exatamente a sintaxe do comando T-SQL do SQL Server para adicionar um membro a um papel: ALTER ROLE <nome_do_papel> ADD MEMBER <nome_do_membro>. O comando ALTER ROLE é o responsável por modificar a composição de um papel, e a cláusula ADD MEMBER especifica o usuário ou papel que será incluído.

Alternativa E — ❌ Incorreta

A alternativa E (INCLUDE MEMBER Geraldo IN ROLE Geral) está incorreta porque não existe o comando INCLUDE MEMBER no SQL Server. A palavra-chave INCLUDE não é utilizada para gerenciar membros de papéis; a sintaxe correta usa ALTER ROLE ... ADD MEMBER ....

NÃO CAIA NESSA!

A banca explora a confusão entre a sintaxe de adicionar membros a um papel no SQL Server e a de outros SGBDs ou versões mais antigas. No SQL Server, o comando é ALTER ROLE ... ADD MEMBER ..., e não ADD MEMBER ... TO ROLE ... (que lembra a sintaxe do Oracle) nem GRANT ... TO ... (que é para conceder permissões diretamente). Memorize a estrutura ALTER ROLE <papel> ADD MEMBER <membro> — é a única forma válida no T-SQL.

Gabarito: letra D

Link permanente: /questoes/vu195957