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_dbi target_dbdla właściciela SP jest (więc jest łatwy app_agentw source_dba target_dbdo logowania app_agent).
Jeśli zaloguję się jako app_agenti 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 ONrozwiązuje problem, ale nie wydaje mi się to właściwym rozwiązaniem ...