Ha Visual Studioban Database projektet használsz az alkalmazásod adatbázisának felépítéséhez, akkor ott XML-ben kell megadnod, hogy deploy-kor mely tárolteljárásokat ki futtathasson. Valahogy így:
<PermissionStatement Action="GRANT">
<Permission>EXECUTE</Permission>
<Grantee>TheUser</Grantee>
<Object Name="MyStoredProcedure" Schema="dbo" Type="OBJECT" />
<Grantor>dbo</Grantor>
</PermissionStatement>
Ha már van sok tárolteljárásod, és nem írtad meg még az XML-t, akkor az alábbi SQL szkript kigenerálja Neked. Csak futtasd le egy Management Studioban, és másold be a Database projektedbe (a Database.sqlpermissions fájlba). Néhány ezer sor kódolást takaríthatsz meg vele.
SELECT
'<PermissionStatement Action="GRANT">'+
' <Permission>EXECUTE</Permission>'+
' <Grantee>TheUser</Grantee>'+
' <Object Name="' + ROUTINE_NAME + '" Schema="' + ROUTINE_SCHEMA + '" Type="OBJECT" />'+
' <Grantor>dbo</Grantor>'+
'</PermissionStatement>'
FROM INFORMATION_SCHEMA.ROUTINES
WHERE OBJECTPROPERTY(OBJECT_ID(ROUTINE_NAME),'IsMSShipped') = 0
AND ROUTINE_TYPE='procedure'
AND ROUTINE_NAME NOT LIKE 'aspnet_%'
A fenti szkript a “TheUser” nevű felhasználónak/szerepkörnek fog futási jogot adni.