Я щось пропускаю, намагаючись використовувати свою збережену процедуру EXECUTE AS
. Збережена процедура зчитує дані source_db
, агрегує їх і зберігає в результаті target_db
.
Сам сп є в target_db
. У мене є спеціальний логін і зіставте його користувачів як source_db
і target_db
для власника зр ( в так що користувач app_agent
в source_db
і target_db
для входу в систему app_agent
).
Якщо я ввійду як app_agent
і виконую
EXEC target_db.app_agent_schema.import_data
все працює добре. Але якщо я змінюсь
ALTER PROCEDURE app_agent_schema.import_data WITH EXECUTE AS OWNER` (or `AS SELF`)
і спробуйте виконати його, воно кине
Основний сервер "app_agent" не в змозі отримати доступ до бази даних "source_db" в поточному контексті безпеки.
Я використовую SQL Server 2008.
Чи може хтось вказати на мою помилку?
Спасибі
Оновлення
Після проведення деяких досліджень я виявив, що ALTER DATABASE target_db SET TRUSTWORTHY ON
вирішує проблему, але це не здається правильним рішенням для мене ...