Разрешение пользователям выбирать из таблицы - PullRequest
0 голосов
/ 22 октября 2011

Таблица 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

Вот утверждение, которое я должен был использовать

SQL> SELECT * из cis605.emp;

1 Ответ

2 голосов
/ 22 октября 2011

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

  1. Ссылка на имя таблицы, включая схему, в которой она находится. Т.е.

    SELECT * FROM schema.EMP;

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


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

grant select on cis605.emp to chap7;

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

...