2011-10-22 3 views
0

Таблица emp существует для cis605, и я хочу назначить разрешения для пользователя. Любые идеи, что я делаю неправильно?Позволяет пользователям выбирать из таблицы

SQL> grant select on emp to user; 

    Grant succeeded. 

    SQL> connect user 
    Enter password: 
    Connected. 
    SQL> select * from emp; 
    select * from emp 
        * 
    ERROR at line 1: 
    ORA-00942: table or view does not exist 

Я также пробовал делать это по-разному

 SQL> connect cis605 
    Enter password: 
    Connected. 
    SQL> grant select on system.emp to chap7; 
    grant select on system.emp to chap7 
          * 
    ERROR at line 1: 
    ORA-00942: table or view does not exist 

Heres заявление, которое я должен был с помощью

SQL> SELECT * из cis605.emp;

+0

Возможный дубликат [Я хочу назначить разрешения для пользователя, чтобы увидеть таблицу EMP] (http://stackoverflow.com/questions/7857005/i- хотим к присваивания-разрешениям-на-а-пользователя-см-The-ой-таблица) –

ответ

2

В первом случае это не работает, потому что вам нужно либо:.

  1. Ссылка имя таблицы, включая схемы это в то

    SELECT * FROM schema.EMP;

ИЛИ
2. Создайте [Public] синоним для того, чтобы иметь возможность «видеть» таблицу без включения схемы в каждом SQL заявления.

Во втором случае вы пытаетесь ссылаться на схему, но ошибаетесь. Таблица EMP обычно находится в схеме SCOTT, а не в SYSTEM. Хотя в вашем случае, может быть, что вам нужно сделать:

grant select on cis605.emp to chap7; 

Кроме того, наличие пользователя с именем «USER» плохая идея - что это ключевое слово Oracle. (Хотя я думаю, что это может быть просто для целей примера)

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