Als de opgeslagen procedure is gemaakt met UITVOEREN ALS BELLER (wat volgens mij de standaardinstelling is), dan moet de beller alle benodigde machtigingen hebben om te doen wat de opgeslagen procedure ook doet, naast UITVOEREN voor de procedure.
Uit de SQL Server-documentatie voor EXECUTE AS:
Merk op dat vanwege de manier waarop SQL Server toestemmingscontroles verwerkt met behulp van eigendomsketens, dit niet altijd strikt waar is, en ik vermoed dat het verlenen van CONTROL over de procedure (die de eigendomsstatus aan de gerechtigde verleent) ervoor zorgt dat deze toestemmingscontroles worden omzeild.
Als u de procedure maakt met UITVOEREN ALS EIGENAAR, hoeft u geen machtigingen te verlenen buiten UITVOEREN voor de procedure.