Для этого вам необходимо иметь разрешение "IMPERSONATE". Проверьте заявление GRANT IMPERSONATE
.
Кроме того, я считаю, что лучший способ сделать это (вместо повышения уровня разрешений для SA) на сервере sql:
- Создать сертификат
- Подписать хранимую процедуру сертификатом
- Удалить закрытый ключ из сертификата
- Создать пользователя из сертификата
- Предоставить пользователю необходимые права
Необязательно, если вам нужны «Права сервера»:
- Экспорт сертификата на диск
- Импорт сертификата в основную базу данных
- Создать логин из сертификата
- Предоставьте соответствующие права для входа в систему
Необязательно, если вам нужны "перекрестные права на базу данных"
- импортировать сертификат в базу данных, где вы хотите предоставить разрешения
- создать пользователя из сертификата.
- предоставить правильные права пользователю
SQL Server объединит все права доступа пользователей / входа в систему через сертификаты, и при выполнении подписанной процедуры он будет использовать разрешения пользователей, связанных с сертификатом.