I'm missing something while trying to make my stored procedure use
EXECUTE AS. The stored procedure is reading data from
source_db, aggregates it and stores result in
The sp itself is in
target_db. I have a dedicated login and map it to users in both
target_db for sp's owner (so there is a user
source_db and in
target_db for login
If I log in as
app_agent, and execute
everything works fine. But if I change
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
and try executing it, it throws
The server principal "app_agent" is not able to access the database "source_db" under the current security context.
I'm using SQL Server 2008.
Could someone point out my error?
After doing some research, I found that
ALTER DATABASE target_db SET TRUSTWORTHY ON solves the problem, but that doesn't seem as the right solution to me...