2013-04-03 5 views
0

Итак, я подключился к Oracle XE 11g в качестве администратора (системы). Я создаю нового пользователя Боба и хочу предоставить ему определенные привилегии на определенной таблице. Стол в голове был создан другим обычным пользователем Джим.Oracle XE: Администратор не может получить доступ к таблицам пользователей?

Когда я пытаюсь предоставить, я сказал, что «таблица или представление» не существует "? Если бы я войти, как Джим существует таблица, но в системе, которую я не могу показаться, чтобы получить доступ к таблицам, созданным Джим.

Я пропускаю что-то здесь?

+0

Используете ли вы имя схемы/имя пользователя перед именем таблицы? Как 'Schemaname.Tablename'? –

ответ

2

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

т.е.

SQL> connect system/@oracle11203 
Connected. 

SQL> grant select on TESTTAB to TEST2; 
grant select on TESTTAB to TEST2 
       * 
ERROR at line 1: 
ORA-00942: table or view does not exist 


SQL> grant select on TEST.TESTTAB to TEST2; 

Grant succeeded. 

SQL> 
+0

О, я не знаю схемы. Я новичок в Oracle. Как пользователь Jim Я только что создал таблицы, я никогда не указывал схему. Являются ли они по какой-то схеме по умолчанию? – Boon

+1

@ user2119522 вы знаете схему, как вы сказали себе: «Стол в уме был создан другим обычным пользователем Джим». т.е. схема JIM (пользователи и схемы - одно и то же в оракуле). поэтому, если вы создали таблицу, зарегистрированную в JIM, тогда JIM владеет таблицей, поэтому дайте 'grant select на JIM.YOUR_TAB на BOB;' – DazzaL

 Смежные вопросы

  • Нет связанных вопросов^_^