Внешний администратор базы данных DB экспортировал производственную базу данных и импортировал ее в тестовую среду. Мы используем Oracle 9.2. Большинство импортируемых объектов базы данных (таблицы, представления, идексы, пакеты и т. Д.) Отлично работают, но у нас есть проблемы с тремя конкретными таблицами: мы можем делать SELECT, UPDATE, DELETE в этих таблицах, но мы не можем создавать представления по этому столы.Невозможно создать простой вид в таблице Oracle
Другими словами, на следующие работы:
create or replace view v_test_view as select 1 x from dual; // we can create views
create or replace view v_test_view as select 1 x from someTable;
select * from problematicTable; // we can select data from problematic table
Но это не работает:
create or replace view v_test_view as select 1 x from problematicTable;
--> ORA-01031: insufficient privileges
Справочная информация:
- дб админ используется импорт/экспорт утилита для копирования схема базы данных
- версия производства и испытания Oracle не совсем то же самое (производство - 9.2.0.8, test - 9.2.0.7)
- после первоначального импорта проблема problemTable была видна в каталоге объектов (и инструментах разработки базы данных), но при попытке SELECT из этого таблицы, мы вернули «недопустимый идентификатор». После этого таблицы были повторно импортированы, и теперь мы можем выбрать SELECT, но не для того, чтобы создавать их виды.
Любые идеи?
ОБНОВЛЕНИЕ: Похоже, ситуация еще более странная. При использовании одного оракула сеанса можно выбрать данные из этой таблицы, в другой сессии Oracle (с использованием того же пользователя для входа!), Мы получаем «ORA-00904: недопустимый идентификатор»
UPDATE # 2: Данные экспорта, которые были использованы для импорта, были успешно использованы для импорта данных в другую тестовую среду (позволяет называть ее TEST1), которая находится на том же уровне Oracle, что и проблема (TEST2). Разница между этими двумя средами заключается в том, что TEST1 использует один и тот же пользователь (имя схемы) в качестве производства, но TEST2 использует другого пользователя (soo объекты были импортированы в другое имя схемы). В проблемных таблицах нет специальных свойств безопасности, отличных от таблиц, которые работают нормально.
Matra
Можете ли вы рассказать нам название проблемной таблицы? Он содержит странные символы или иностранные символы? Кроме того, вы уверены, что это недостаточные привилегии? – Petros
Имя таблицы не содержит символов начального уровня. Имя ADSLMANUALCHECK. О привилегиях: как описано выше, иногда я могу выбрать SELECT из этой таблицы, но в других случаях (используя одного и того же пользователя) я не могу этого сделать, и я возвращаюсь ORA-009004. – 2009-04-10 05:03:49
Итак, TEST2 владеет таблицей и пытается создать представление? –