Как грамотно и оперативно устранить ошибку: Could not find stored procedure в MSSQL Server

Рубрики: [Разное]  [Хайтек]  

Многие разработчики, как правило, именно начинающие, сталкиваются в своей практике с вопросом, разрешение которого становится большой проблемой.

На самом деле, всё решить можно куда более проще, нежели кажется.

Речь идёт об  ошибке, которая формулируется следующим образом: «Could not find stored procedure в MSSQL Server».

Microsoft SQL Server – это система управления реляционными базами данных.  В ней используется язык запросов Transact-SQL, который был разработан корпорацией Microsoft совместно с дочерней компанией SAP AG.

Язык Transact-SQL представляет собой реализацию стандарта ANSI/ISO по структурированному языку с расширениями. Применяется для действий с информационными базами данных, размером от небольших, личных, до крупных, задействованных на больших организациях и предприятиях.

Смысл упомянутой ошибки заключается в следующем: имеется определённое клиентское приложение, сообщающееся с информационной базой данных с целью выполнения конкретных действий. Чтобы гарантировать  безопасность соединения, создаётся особый пользователь в базе данных MSSQL, у которого возможности для действий полностью ограничены. Исключением является выполнения ряда действий, касающихся сохранённых процедур.

Далее, во  время осуществления операции, направленной на выполнение вызова хранимой процедуры, программа выдаёт надпись: «Could not find stored procedure».

В этой ситуации не помогают не изменение прав, ни помещение конкретного пользователя в группы.

Решение возникает оттуда, откуда многие не ждали. И ситуация начинает разрешаться гораздо проще, чем возможно, казалось: происходит это из-за того, что забыли  конкретно указать пользователя, к которому относится хранимая процедура.

Вполне возможно, что хранимую процедуру создавал один пользователь, которого обозначим ХХХ – им будет администратор, а второго  именуем  YYY – он же должен и быть тем самым пользователем, у которого права ограниченны.

Первое, что мы должны сделать, чтобы разрешить эту проблему: предоставить пользователю, которого именовали YYY права на исполнение хранимой процедуры. Это действие можно выполнить посредством  MSSQL Management Studio или же воспользовавшись прямым SQL-запросом:

GRANT EXECUTE ON Procedure_Name TO YYY

Вторым нашим действием, которое мы должны выполнить, является то, чтобы в очередной раз не пришлось видеть уже давно знакомое сообщение: «Could not find stored procedure» необходимо всего-то просто указать полный вариант имени хранимой процедуры. Выглядит он примерно так:

EXEC [XXX].[Procedure_Name]

Внимательное изучение этого решения, равно и как его безупречное понимание, позволят Вам в будущем не только избегать подобных неприятных ситуаций, связанных с вышеупомянутыми ошибками, но и решать их, нет затрачивая много времени и сил.

Выполните все описанные действия, и Вы увидите, что всё работает должным образом, и более нет никаких проблем, которые могли бы являться преградой для дальнейшей работы.

 

 


Леонид Миров


Оставьте комментарий



««« »»»