title: SQL server service broker related rights issue
body: <pre><code>CREATE PROCEDURE [dbo].[stproc_ssb_send] (@iname varchar(20))
  WITH EXECUTE AS 'xyz'
  AS
  BEGIN
  
  DECLARE @DIALOG_HANDLE UNIQUEIDENTIFIER
  DECLARE @MSG varchar(max) 
  
  SET @MSG='&lt;MESSAGE&gt;
          &lt;test&gt;' + @iname + '&lt;/test&gt;
          &lt;/MESSAGE&gt;'
  
      BEGIN DIALOG CONVERSATION @DIALOG_HANDLE
      FROM SERVICE START_PROC_PROCESS_SERVICE
      TO SERVICE 'EXECUTE_PROC_PROCESS_SERVICE'
      ON CONTRACT [PROC_PROCESS_CONTRACT]
      WITH ENCRYPTION= OFF;
  
      SEND ON CONVERSATION @DIALOG_HANDLE
      MESSAGE TYPE PROC_PROCESS_MT(@MSG);
  
      END CONVERSATION @DIALOG_HANDLE
  END
  </code></pre>
  
  <p>error:</p>
  
  <blockquote>
    <p>Msg 15517, Level 16, State 1, Procedure [stproc_ssb_send], Line 0
    Cannot execute as the database principal because the principal "xyz"
    does not exist, this type of principal cannot be impersonated, or you
    do not have permission.</p>
  </blockquote>
  
  <p>XYZ is db_owner/db_ddladmin for this database.</p>