В приведенном ниже примере предоставляются полномочия на выполнение роли в схеме Rptg.Члены этой роли по умолчанию не имеют VIEW DEFINION для этих хранимых процедур, как это было указано в комментарии @ JeroenMostert.
CREATE ROLE RptgSchemaProcExecutor;
GRANT EXECUTE ON SCHEMA::Rptg TO RptgSchemaProcExecutor;
Вот пример сценария проверки.
CREATE USER ExampleUser WITHOUT LOGIN;
ALTER ROLE RptgSchemaProcExecutor
ADD MEMBER ExampleUser;
GO
EXECUTE AS USER = 'ExampleUser';
GO
--this will err with "There is no text for object 'Rptg.ExampleProc'."
EXECUTE sp_helptext 'Rptg.ExampleProc';
GO
REVERT;
GO