Я столкнулся с проблемой, в которой не знаю, где искать и как ее исправить. Проблема в следующем. У нас есть сайт с базой данных sql2000. Резервная копия из этого была восстановлена для создания среды разработки. Некоторые из процедур хранилища называются [владелец] .name (владелец не dbo, и я хотел бы сохранить одну и ту же структуру как в среде разработки, так и в среде разработки)
Когда я пытаюсь запустить эти процедуры хранилища без указания имени владельца, я получаю ошибку «не удалось найти процедуру хранилища». (используя учетные данные владельцев)
Но я создаю нового пользователя и новую процедуру магазина, владельцем которой является этот новый пользователь. А затем войдите в систему с новым пользователем. Затем я могу найти процедуру сохранения по ее имени.
Пример:
Владелец = Daniel SPTest = процедура хранения (имя Daniel.SPTest)
Войдите как Даниэль, exec SPTest = процедура хранения не найдена <- что здесь не так?
Создайте нового пользователя и сохраните процедуру в базе данных. Владелец New User SPTest2 = Сохранить процедуру (имя New User.SPTest2) Войти как новый пользователь exec SPTest2 = запустить процедуру
Я попытался удалить пользователя Daniel, а затем создал нового пользователя с именем Daniel. Но я все равно получил ту же ошибку. Есть ли какая-нибудь другая таблица, где расположено такое отображение?
Создайте своего пользователя Daniel на сервере (не только для этой базы данных, но и в объектах безопасности для сервера), затем запустите:
USE YOUR_SQL_2000DB
sp_change_users_login 'auto_fix', 'Daniel'
Проблема (скорее всего) в том, что ваша база данных не просматривает вашего нового «Даниэля» как того же пользователя, что и старый «Даниэль». Этот системный sproc должен это исправить.