• Ok, I figured out my issue.  The test user still has to be assigned to the public role in DB1 & DB2.  It doesn't have to have any further privileges.  Way too of a simple fix that I was overlooking.

    Now to add a twist to this.  I have a stored procedure in DBAll that is inserting into tables in DB2.  This works fine with DB chaining if the stored procedure does not build a dynamic SQL statement.  However, if it is building a dynamic SQL statement, I get insert permission denied on the table in DB2.  Is there a way to get around this with dynamic SQL?  Do I need to use the EXECUTE AS for any dynamic SQL sps?

    I was able to figure out the issue with dynamic SQL.  Thanks to this very good article:  http://www.sommarskog.se/grantperm.html.  When using dynamic SQL you do need to use the WITH EXECUTE AS statement or use certificates.  As the article states, this is an option you will want to be careful with & work closely with your local friendly dba to set standards on the use of it. 

    Thanks,

    John