У меня 2 пользователя в OracleXE db: ALICE
и BOB
. После последовательности шагов успешно на моей локальной машине:Почему тип Oracle, созданный одним пользователем, не отображается другим пользователем?
- подключиться как
ALICE
- создать тип верхнего уровня:
create or replace type testtype as object(x number(16));
(EDIT: исправление от неправильного имени Foo, который misleaded Мэтью Макпик) - подключения, как
BOB
BOB
видит на типALICE
«S:select * from all_types
возвращается строкаdeclare x ALICE.testtype; begin null; end;
компилирует
Те же действия, применяемые к нашей доходности базы данных развития в ситуации, когда тип является невидимым для BOB
, т.е. выбрать не возвращает строку для типа, PLSQL блок компиляции терпит неудачу с ошибкой PLS-00201: identifier 'ALICE.TESTTYPE' must be declared
.
Мне нужно сделать вид видимым, поэтому я спрашиваю: Что может вызвать эту разницу? (Я догадывался о необходимости предоставления грантов по типам или общественным синонимам, однако этот минималистский пример доказывает обратное.) Некоторое свойство пользователя/сессии? Я сделал все возможное в поиске по Google и сейчас застрял, хотя я надеюсь, что решение будет тривиальным. Обе базы данных - это Oracle 11g (11.2.0.1.0 dev, 11.2.0.2.0 local).
Спасибо!
Вероятно, что у Боба и Алисы разные роли и права из одной базы данных в другую – kevinsky