Использование множественных схем

Группы таблиц можно отделить в их собственные Именные простран­ства , которые в PostgreSQL называются Схемами. Они похожи на директории, но все же есть и различия.
Обязательно прочитайте раздел «Проектирование с учетом multi­tenancy», чтобы убедиться, что вам нужен именно этот способ дей­ствий. Существуют и другие возможности, которые в вашем случае могут оказаться более полезными. Схемы легко создать с помощью команд Затем можно будет создавать объекты непосредственно внутри схемы, используя «полные» имена, например: По умолчанию объект будет создаваться в текущей схеме. Узнать о том, какая схема в данный момент является текущей, можно с по­мощью запроса При работе с объектами БД используется настраиваемый для различных пользователей параметр Search_path, Который определя­ет, в какой схеме следует искать. Текущая схема — это первая схема в Search_path . Если необходимо, чтобы пользователь видел только определен­ный набор таблиц, можно модифицировать его search_path. Так как этот параметр для каждого пользователя может иметь свое значение, он задается при попытке установить соединение. Например, так: Следует заметить, что необходимо давать привилегии для работы со схемой так же, как и особые права на объекты схемы. Поэтому для объектов нужно будет указывать, например: GRANT SELECT ON month_end_snapshot TO public; или задавать привилегии по умолчанию, которые будут использова­ны при создании объектов:
Выше уже говорилосьотом, что схемы в чем-то похожи на директории.
Понятие search_path в PostgreSQL напоминает концепцию пе­ременной окружения PATH. Текущая схема напоминает текущую рабочую директорию. Здесь нет команды cd для смены директории, но зато есть search_path. Есть и еще несколько отличий: например, схемы PostgreSQL не ранжируются по иерархии, подобно директо­риям файловой системы.
Многие создают пользователя и схему с одним именем, чтобы ра­ботать, как в других СУБД, например в Oracle. Следует заметить, что обе схемы finance и sales существуют в рамках одной и той же базы данных PostgreSQL и запущены на од­ном и том же сервере БД. Они используют один и тот же буфер, и их тесно связывает множество глобальных настроек.



Рубрика: Женский интерес