Respostas:
SQL Server 2008 e superior:
/* CREATE A NEW ROLE */
CREATE ROLE db_executor
/* GRANT EXECUTE TO THE ROLE */
GRANT EXECUTE TO db_executor
Para apenas um usuário (não uma função):
USE [DBName]
GO
GRANT EXECUTE TO [user]
user
pode estar entre colchetes. Isso era verdade no meu caso de uso, pelo menos em parte porque meu usuário tinha um domínio anexado (ou seja, tinha um caractere \). edit: personagem barra invertida corrigida
O SQL Server 2005 introduziu a capacidade de conceder permissões de execução de banco de dados a um princípio de banco de dados, conforme você descreveu:
GRANT EXECUTE TO [MyDomain\MyUser]
Isso concederá permissão no escopo do banco de dados, que inclui implicitamente todos os procedimentos armazenados em todos os esquemas. Isso significa que você não precisa conceder explicitamente permissões por procedimento armazenado.
Você também pode restringir concedendo permissões de execução de esquema se desejar ser mais granular:
GRANT EXECUTE ON SCHEMA ::dbo TO [MyDomain\MyUser]
Além das respostas acima, gostaria de adicionar:
Você pode conceder isso a uma função e atribuir a função ao (s) usuário (s). Suponha que você tenha criado uma função myAppRights
via
CREATE ROLE [myAppRights]
então você pode conceder direitos de execução via
GRANT EXECUTE TO [myAppRights]
para esse papel.
Ou, se você quiser fazer isso no nível do esquema:
GRANT EXECUTE ON SCHEMA ::dbo TO [myAppRights]
também funciona (neste exemplo, a função myAppRights
terá direitos de execução em todos os elementos do esquema dbo
posteriormente).
Dessa forma, você só precisa fazer uma vez e pode atribuir / revogar todos os direitos de aplicativos relacionados facilmente para / de um usuário, se precisar alterá-lo posteriormente - especialmente útil se você quiser criar perfis de acesso mais complexos.
Nota: Se você conceder uma função a um esquema, isso também afeta os elementos que você criará posteriormente - isso pode ser benéfico ou não, dependendo do design que você pretendeu, portanto, lembre-se disso.
CONCEDE EXECUTAR A [PAPEL]
Este certamente ajuda