Coś mi brakuje podczas próby użycia procedury składowanej EXECUTE AS
. Procedura składowana odczytuje dane source_db
, agreguje je i przechowuje wynik target_db
.
Sam SP jest w target_db
. Mam dedykowany logowanie i mapować je do użytkowników w obu source_db
i target_db
dla właściciela SP jest (więc jest łatwy app_agent
w source_db
a target_db
do logowania app_agent
).
Jeśli zaloguję się jako app_agent
i wykonam
EXEC target_db.app_agent_schema.import_data
wszystko dziala. Ale jeśli się zmienię
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
i spróbuj go wykonać, rzuca
Główny serwer „app_agent” nie może uzyskać dostępu do bazy danych „source_db” w obecnym kontekście bezpieczeństwa.
Używam SQL Server 2008.
Czy ktoś mógłby wskazać mój błąd?
Dzięki
Aktualizacja
Po przeprowadzeniu badań odkryłem, że ALTER DATABASE target_db SET TRUSTWORTHY ON
rozwiązuje problem, ale nie wydaje mi się to właściwym rozwiązaniem ...