Liberar procedure sp_helptext
Tenho alguns clientes que possuem equipe de desenvolvimento própria, e essa equipe não tem acesso total à produção. Nesses locais, normalmente, os desenvolvedores até acessam produção, mas apenas com permissão de leitura. É uma forma de facilitar o suporte em caso de problemas com o sistema, sem correr o risco de alguém decidir alterar alguma coisa no BD para corrigir um erro, e acabar gerando outros tantos...
Porém, uma reclamação constante dos desenvolvedores é não conseguir visualizar o código de views, functions e stored procedures. Hoje, eu precisei fazer essa liberação num cliente, e o comando simplesmente desapareceu da minha cabeça. Depois de algumas pesquisas na Internet, finalmente os neurônios entraram em ação e o comando ultra-mega-hiper-blaster complicado reapareceu:
GRANT VIEW DEFINITION TO [nome_usuario]
Sim... Tudo isso!
Depois dessa, para garantir que os desenvolvedores teriam acesso aos códigos em todos os BDs, fiz uma query para aplicar a permissão a todos os BDs da instância:
SELECT 'USE [' + name + '];GRANT VIEW DEFINITION to [nome_usuario];' FROM sys.databases WHERE database_id > 4 ORDER BY 1
Não preciso dizer para alterar o "nome_usuario" pelo login do usuário ou grupo que receberá a permissão, certo? ;-)