Sinceramente, estou um pouco confuso com sua descrição, então, por favor, deixe-me saber se estou fora da base aqui. Você pode tentar isso abaixo. Ele concederá acesso de execução a todos os procedimentos armazenados. Se você só precisar que o gatekeeper tenha acesso a um procedimento armazenado, apenas conceda a execução nesse procedimento armazenado. Se o procedimento armazenado estiver acessando dados de outros bancos de dados, talvez seja necessário conceder permissões nas tabelas e para que ele acesse fora de seu banco de dados.
CREATE ROLE db_executor
GRANT EXECUTE TO db_executor
EXEC sp_addrolemember 'db_executor', 'gatekeeper'