Табличные пространства являются административной вещью: они представляют собой способ логической группировки хранилища без необходимости беспокоиться о пути к файлу или другой администрации.
Из вашего пересмотренного вопроса очевидно, что Тони прав и что вы имеете в виду схема .
Схема - это набор объектов, принадлежащих пользователю,Когда процедура, принадлежащая пользователю A, должна ссылаться на объект, принадлежащий схеме B, это можно сделать двумя способами.Первый способ - жестко закодировать имя схемы.
select *
from user_b.emp;
Обычно это нормально, но не сработает в описываемом вами сценарии, где другая схема имеет другое имя с другим именем в других средах (C, а неБ).
Чтобы обойти эту проблему, нужно использовать синонимы.
select *
from not_my_emp;
В DEV синонимом будет:
create synonym not_my_emp for user_b.emp
/
, тогда как в производстве это будет
create synonym not_my_emp for user_c.emp
/
Таблица может даже иметь другую таблицу в производстве, это не имеет значения.Синоним действует как интерфейс для защиты наших объектов от неопрятных деталей других схем.
Обратите внимание, что синоним не предоставляет привилегии для базового объекта.Это означает, что USER_B должен предоставлять привилегии для EMP в разработке, а USER_C должен предоставлять привилегии для производства.