Analista - Área de Apoio Especializado - Tecnologia da Informação - Banco de Dados
O comando correto de administração numa instalação SQL Server que concede a permissão de execução de uma stored procedure X num esquema (schema) Y para um papel (role) Z é:
AALLOW EXECUTE(X) FOR Y.Z;
BCALL EXECUTE_PERMISSION X(Y.X);
CFOR X IN Y ALLOW EXECUTE TO Z;
DGRANT EXECUTE ON OBJECT::Y.X TO Z;
EGRANT USER Z EXEC X UNDER Y.
Revelar gabarito e comentário▾
GabaritoD — GRANT EXECUTE ON OBJECT::Y.X TO Z;
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”.
Comando GRANT EXECUTE no SQL Server
Gabarito: letra D. No SQL Server, a concessão de permissão de execução de uma stored procedure utiliza o comando GRANT EXECUTE ON OBJECT::schema.procedure TO role. A alternativa D reproduz exatamente essa sintaxe: GRANT EXECUTE ON OBJECT::Y.X TO Z;, sendo a única correta.
A questão testa o conhecimento da sintaxe DCL (Data Control Language) específica do SQL Server. As demais alternativas usam comandos ou estruturas que não existem no Transact-SQL.
Alternativa A — ❌ Incorreta
ALLOW EXECUTE(X) FOR Y.Z; – A palavra-chave ALLOW não é um comando SQL válido. Não existe cláusula ALLOW EXECUTE no SQL Server.
Alternativa B — ❌ Incorreta
CALL EXECUTE_PERMISSION X(Y.X); – CALL é usado para chamar procedimentos, não para conceder permissões. A combinação EXECUTE_PERMISSION não é uma instrução reconhecida.
Alternativa C — ❌ Incorreta
FOR X IN Y ALLOW EXECUTE TO Z; – Sintaxe completamente fora do padrão SQL. FOR X IN Y não faz parte de nenhum comando de permissão.
Alternativa D — ✅ Correta ⟵ GABARITO
GRANT EXECUTE ON OBJECT::Y.X TO Z; – Esta é a forma correta no SQL Server:
GRANT EXECUTE concede permissão para executar o objeto.
ON OBJECT::Y.X especifica o schema (Y) e o objeto (stored procedure X).
TO Z define o papel (role) que recebe a permissão.
Alternativa E — ❌ Incorreta
GRANT USER Z EXEC X UNDER Y; – A sintaxe correta não inclui a palavra USER antes do destinatário, nem a cláusula UNDER. O comando seria GRANT EXECUTE ON X TO Z;, mas mesmo assim sem o schema.
Conclusão: A única alternativa que segue a sintaxe oficial do SQL Server para conceder permissão de execução de uma stored procedure é a letra D.
PEGA ESSA DICA!
Decore a estrutura padrão de GRANT no SQL Server: GRANT permissão ON [tipo::]objeto TO destinatário. Para procedures, o tipo pode ser OBJECT:: ou PROCEDURE:: (ambos funcionam). A prática de resolver questões de sintaxe ajuda a fixar esses comandos.