Questão de Banco de Dados — Sublinguagens SQL (DDL, DML, DQL, DCL e DTL) — VUNESP 2023
Banco de Dados›Sublinguagens 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 é
AADD MEMBER Geraldo TO ROLE Geral;
BMODIFY ROLE Geral PLUS Geraldo;
CCHANGE ROLE Geral WITH Geraldo;
DALTER ROLE Geral ADD MEMBER Geraldo;
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.
1ALTER ROLE <papel>
2ADD MEMBER <membro>
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.