Я пытаюсь запустить хранимую процедуру из имени входа с ограниченными правами, которому были предоставлены разрешения на выполнение для указанной хранимой процедуры. Хранимая процедура обращается к 2 базам данных, которые существуют на одном сервере. Когда я выполняю хранимую процедуру, я получаю сообщение об ошибке:
Субъект сервера «LimitedUser» не может получить доступ к базе данных «Database2» в текущем контексте безопасности.
Немного предыстории: недавно мне поручили перенести наши 2 разных сервера баз данных в единую базу данных. Я сделал резервную копию и экспортировал необходимые базы данных и восстановил их на новом сервере. Более старыми базами данных являются MS sql server 2000 (для базы данных 2) и MS sql server 2005 (для базы данных 1, где находится вышеупомянутый хранимый процесс)
Я нашел некоторые выводы, которые, кажется, предполагают, что, поскольку я импортировал базы данных, владельцы были другими, и это могло вызвать проблему. Поэтому я запустил «exec sp_changedbowner 'sa'» для двух баз данных, чтобы убедиться, что у них один и тот же владелец. Я все еще получаю ту же ошибку при запуске хранимой процедуры из LimitedUser. Многие другие примеры на различных сайтах форумов имеют дело с базами данных, которые находятся на разных серверах... и должны использовать команды открытых запросов. Я не считаю, что это необходимо.
Когда я запускаю его как пользователь, у которого больше прав администратора, сохраненный процесс работает нормально. Итак, мой вопрос: какие разрешения я должен установить, чтобы разрешить это действие от LimitedUser?
Спасибо!