 <p>MNagel has the correct link for this, but to reiterate, you want to look at using something like:</p> <pre><code>CREATE PROC dbo.MyProc WITH EXECUTE AS 'SomeUser' AS BEGIN --Proc --Do Stuff END --Proc GO </code></pre> <p>"Execute As" has some other gotchas along the way. You have to allow others to impersonate the specified user and that user would need the appropriate select permissions to the underlying tables.</p> <p>If you want to mass grant permissions, you can do that at the Schema level instead of the object level - something like:</p> <pre><code>GRANT SELECT, EXEC ON Schema::dbo TO MyRole; </code></pre> <p>I've used that before to greatly simplify a lot of grant statements for our roles. We have very few overrides for the more general roles so this helps quite a bit.</p>