title: Restrict user to Stored Procedures
body: <p>I need to restrict user access to SELECT, INSERT, UPDATE and DELETE, so that user should manage data only using stored procedures I provide.</p>
  
  <p>So, for instance</p>
  
  <pre><code>SELECT * FROM Table1
  </code></pre>
  
  <p>should return</p>
  
  <pre><code>The SELECT permission was denied on the object 'Table1'
  </code></pre>
  
  <p>however, if there is stored procedure SelectTable1 defined as</p>
  
  <pre><code>CREATE PROCEDURE SelectTable1
  AS
  BEGIN
      SELECT * FROM Table1
  END
  </code></pre>
  
  <p>(the real one contains filtering and parameters, so it is not meaningless, like the one above)</p>
  
  <p>user should execute it successfully and get the resultset.</p>
  
  <p>But obviously, I have no success implementing this set of permissions. Can anybody point me to some specific tutorial? MSDN was not very helpful.</p>
  
  <p>Database is SQL Server 2012 and all objects (tables and stored procedures) are in custom schema.</p>