Você pode conceder a eles a
VIEW DEFINITION
privilégio para esses procs.Veja aqui para o que esse privilégio faz.
Você pode aplicar
VIEW DEFINITION
em diferentes âmbitos:- Servidor
- Banco de dados
- Esquema
- Entidades individuais (por exemplo, um proc, uma função, uma visualização)
Você também pode usar uma consulta para gerar um script para muitos procs.
Então, se você tiver um usuário
Bob
:SELECT N'GRANT VIEW DEFINITION ON '
+ QUOTENAME(SPECIFIC_SCHEMA)
+ N'.'
+ QUOTENAME(SPECIFIC_NAME)
+ N' TO Bob;'
FROM INFORMATION_SCHEMA.ROUTINES
WHERE ROUTINE_TYPE = 'PROCEDURE';
que lhe dará algo assim, que você pode executar:
GRANT VIEW DEFINITION ON [dbo].[aspnet_RegisterSchemaVersion] TO Bob;
GRANT VIEW DEFINITION ON [dbo].[aspnet_CheckSchemaVersion] TO Bob;
GRANT VIEW DEFINITION ON [dbo].[aspnet_Applications_CreateApplication] TO Bob;
...