Рассматривается ошибка Could not find stored procedure в MSSQL Server.
Столкнулся с ошибкой при работе с хранимыми процедурами в MSSQL Server. Потратил минут 20 на элементарную ошибку из-за которой выскакивало ошибка "Could not find stored procedure".
Суть:Есть клиентское приложение, которое соединяется с БД для выполнения определенных действий. Для обеспечения безопасности создается пользователь в базе данных MSSQL, у которого права полностью ограничены за исключением выполнения ряда хранимых поцедур.
При выполнении вызова хранимой процедуры из программы выскакивает исключительная ситуация Could not find stored procedure.
Изменение прав, помещение пользователя в группы не помогает.
Все оказалось проще - забыл явно указать пользователя, к которому относится хранимая процедура.
К примеру, хранимую процедуру создавал пользователь ХХХ (админ), а воспользоваться должен YYY (пользователь с ограниченными правами).
1) Даем пользователю YYY права на исполнение хранимой процедуры. Можно либо через MSSQL Management Studio или через прямой SQL-запрос:
GRANT EXECUTE ON Procedure_Name TO YYY
2) Чтобы не получить сообщение Could not find stored procedure просто указываем полное имя хранимой процедуры:
EXEC [XXX].[Procedure_Name]
Все работает. Желаю никому не наступать на такие грабли :)
|