Базы данных Oracle - статьи



             

Решение № 1 - часть 2


CREATE PUBLIC SYNONYM emps FOR emps;

GRANT SELECT ON emps TO allen;

А теперь проверка:

SQL> SELECT ename FROM emps;

ENAME

----------

SMITH

JONES

SCOTT

ADAMS

FORD

5 rows selected.

А вот, что увидит ALLEN:

SQL> CONNECT allen/allen

SQL> SELECT ename FROM emps;

ENAME

----------

ALLEN

WARD

MARTIN

BLAKE

TURNER

JAMES

6 rows selected.

Замечание. При создании выводимой таблицы EMPS молчаливо подразумевалось, что в EMP имя сотрудника уникально. В существующих данных это действительно так, но в описании таблицы это обстоятельство никак не обозначено, так что при обращение к EMPS при других данных мы рискуем получить ошибку. Здесь мы закрываем на это глаза, но в промышленных системах к формулировке схемы (таблиц базовых и выводимых) нужно подходить более тщательно: в нашем случае или сделать поле EMP.ENAME уникальным, или же заменить формулировку EMPS, убрав оттуда вложенный запрос и применив соединение.




Содержание  Назад  Вперед