Estou usando a edição do SQL Server 2008 Express.
Eu criei um Login, Usuário, Função e Esquema.
Eu mapeei o usuário para o login e atribui a função ao usuário.
O esquema contém várias tabelas e procedimentos armazenados.
Eu gostaria que a função tivesse permissões de execução em todo o esquema.
Eu tentei conceder permissão de execução através do estúdio de gerenciamento e digitando o comando em uma janela de consulta.
GRANT EXEC ON SCHEMA::schema_name TO role_name
Mas quando me conecto ao banco de dados usando o SQL management studio (como o login que criei), em primeiro lugar não consigo ver os procedimentos armazenados, mas o mais importante é que recebo um erro de permissão negada ao tentar executá-los.
O procedimento armazenado em questão não faz nada exceto selecionar dados de uma tabela dentro do mesmo esquema.
Eu tentei criar o procedimento armazenado com e sem a linha:
WITH EXECUTE AS OWNER
Isso não faz diferença.
Suspeito que cometi um erro ao criar meu esquema ou há algum problema de propriedade em algum lugar, mas estou realmente com dificuldades para fazer algo funcionar.
A única maneira que consegui executar com sucesso os procedimentos armazenados é concedendo permissões de controle à função, bem como a execução, mas não acredito que essa seja a maneira correta e segura de prosseguir.
Qualquer sugestão / comentário seria muito apreciada.
Obrigado.