Я занимаюсь программированием на довольно большом проекте, который был запущен кем-то, кто теперь покинул компанию...
Я только что поддержал одну из баз данных компании, а затем снова подключил ее к нашему тестовому серверу. Это, похоже, работает нормально.
Затем я просматриваю обычную процедуру входа в систему, и эта часть также работает.
Однако, как только я доберусь до точки в программе, где ей нужно выполнить хранимую процедуру, я возвращаю сообщение об ошибке Invalid object name 'Informix.dbo.customer'
.
Запуск той же функции в исходной базе данных прекрасен и возвращает данные, которые я ожидаю увидеть.
Пояснения к подобным ошибкам, которые я нашел, похоже, относятся к схемам, но там, где ситуация становится немного странной. В исходной базе данных нет никаких схем; В папке "Безопасность" он имеет только папку "Пользователи", содержащую dbo, и папку "Роли", содержащую папку "Роли базы данных", с обычным файлом db_owner и т.д. И пустую папку с именем "Роли приложения".
Папка "Безопасность" в базе данных с резервным копированием и восстановлением полна всех видов дерьма. Три пользователя в дополнение к dbo, папке "Схемы", папке "Сертификаты", двум папкам с ключами шифрования... Я не могу удалить их.
Из моего ограниченного понимания системы входа в систему SQL пользователь, с которым я вхожу, как получает не-dbo-разрешения из этой коллекции случайного дерьма, и поэтому ему отказывают в доступе к частям базы данных, принадлежащей dbo.
Для моего собственного понимания, в чем суть проблемы, которая вызывает эти ошибки Invalid object name
? И для практических вопросов, что я могу сделать, чтобы исправить эту ситуацию и действительно ли программа, которую я использую для работы с тестовой базой, так же, как и на живом?