×
Мы обрабатываем cookies, чтобы сделать наш сайт удобнее и персонализированнее для вас. Подробнее: политика использования «cookies» и «политики конфиденциальности».

Для самостоятельной настройки ознакомьтесь с инструкцией

Дополнительные настройки cookies в браузерах

Файлы cookie автоматически загружаются в ваш браузер при посещении веб-сайта. У вас есть возможность управлять этими файлами. Если Вы не согласны с использованием файлов cookies, запретите их сохранение на своём устройстве, удалите уже имеющиеся файлы cookies через настройки браузера или прекратите использование сайта.

При отключении обработки cookie наш сайт продолжит функционировать, однако будут использоваться исключительно необходимые технические файлы, без которых работа ресурса невозможна.

Инструкция по отключению cookies
Принять
Настроить
Отклонить

ДОКУМЕНТАЦИЯ

Выберите версию, форк и язык для СУБД Digital Q.DataBase, чтобы прочитать или скачать всю документацию.
Техподдержка
Документация
Диасофт
Авторские права © 2016–2025 ООО "Диасофт Экосистема"
Скачать всю документацию:

6.1.62. CREATE EXTENSION

6.1.62. CREATE EXTENSION

CREATE EXTENSION — установка расширения

Синтаксис

CREATE EXTENSION [ IF NOT EXISTS ] extension_name
    [ WITH ] [ SCHEMA schema_name ]
             [ VERSION version ]
             [ CASCADE ]

Описание

Команда CREATE EXTENSION загружает новое расширение в текущую базу данных. Не должно быть уже загруженного расширения с таким же именем.

Загрузка расширения, по сути, сводится к выполнению его файла-скрипта. Этот скрипт обычно создаёт новые объекты SQL, такие как функции, типы данных, операторы и методы поддержки индексов. Кроме того, CREATE EXTENSION записывает идентификаторы всех созданных объектов, чтобы их можно было снова удалить, если будет выполнена команда DROP EXTENSION.

Пользователь, выполняющий CREATE EXTENSION, становится владельцем расширения для последующих проверок привилегий и, как правило, также становится владельцем любых объектов, созданных скриптом расширения.

Для загрузки расширения обычно требуются те же привилегии, которые потребовались бы для создания его составных объектов. Для многих расширений это означает, что необходимы привилегии суперпользователя. Однако, если расширение помечено как доверенное (trusted) в его управляющем файле, его может установить любой пользователь, имеющий привилегию CREATE в текущей базе данных. В этом случае сам объект расширения будет принадлежать вызывающему пользователю, но содержащиеся в нём объекты будут принадлежать начальному суперпользователю (если только скрипт расширения явно не назначает их вызывающему пользователю). Такая конфигурация даёт вызывающему пользователю право удалить расширение, но не право изменять отдельные объекты внутри него.

Параметры

IF NOT EXISTS

Не вызывать ошибку, если расширение с таким именем уже существует. В этом случае выдаётся уведомление. Обратите внимание, что нет гарантии, что существующее расширение хоть как-то похоже на то, которое было бы создано из текущего доступного файла-скрипта.

extension_name

Имя устанавливаемого расширения. Digital Q.DataBase создаст расширение, используя данные из файла SHAREDIR/extension/extension_name.control.

schema_name

Имя схемы, в которую будут установлены объекты расширения, при условии, что расширение позволяет перемещать своё содержимое. Указанная схема должна уже существовать. Если не указано, и в управляющем файле расширения также не указана схема, используется текущая схема по умолчанию для создания объектов.

Если расширение указывает параметр schema в своём управляющем файле, то эту схему нельзя переопределить с помощью предложения SCHEMA. Обычно возникает ошибка, если предложение SCHEMA задано и конфликтует с параметром schema расширения. Однако, если также задано предложение CASCADE, то schema_name игнорируется при конфликте. Заданный schema_name будет использоваться для установки любых необходимых расширений, которые не указывают schema в своих управляющих файлах.

Помните, что само расширение не считается принадлежащим какой-либо схеме: расширения имеют неквалифицированные имена, которые должны быть уникальны в пределах базы данных. Но объекты, принадлежащие расширению, могут находиться в схемах.

version

Версия устанавливаемого расширения. Это может быть записано либо как идентификатор, либо как строковый литерал. Версия по умолчанию — это та, что указана в управляющем файле расширения.

CASCADE

Автоматически установить любые расширения, от которых зависит данное расширение и которые ещё не установлены. Их зависимости также автоматически устанавливаются рекурсивно. Предложение SCHEMA, если оно задано, применяется ко всем расширениям, установленным таким образом. Другие параметры оператора не применяются к автоматически установленным расширениям; в частности, для них всегда выбираются версии по умолчанию.

Примечания

Прежде чем использовать CREATE EXTENSION для загрузки расширения в базу данных, вспомогательные файлы расширения должны быть установлены. Информацию об установке расширений, поставляемых с Digital Q.DataBase, можно найти в разделе Дополнительные поставляемые модули.

Расширения, доступные в данный момент для загрузки, можно определить из системных представлений pg_available_extensions или pg_available_extension_versions.

Внимание

Установка расширения от имени суперпользователя требует доверия к тому, что автор расширения написал скрипт установки безопасным образом. Злонамеренному пользователю не так уж сложно создать объекты-трояны, которые скомпрометируют последующее выполнение небрежно написанного скрипта расширения, позволив этому пользователю получить привилегии суперпользователя. Однако объекты-трояны опасны только в том случае, если они находятся в search_path во время выполнения скрипта, то есть в целевой схеме установки расширения или в схеме какого-либо расширения, от которого оно зависит. Поэтому хорошим эмпирическим правилом при работе с расширениями, скрипты которых не были тщательно проверены, является установка их только в те схемы, для которых привилегия CREATE не была и не будет предоставлена каким-либо ненадёжным пользователям. То же самое относится и к любым расширениям, от которых они зависят.

Считается, что расширения, поставляемые с Digital Q.DataBase, защищены от атак такого рода во время установки, за исключением нескольких, которые зависят от других расширений. Как указано в документации по этим расширениям, они должны быть установлены в защищённые схемы, или установлены в те же схемы, что и расширения, от которых они зависят, или и то, и другое.

Информацию о написании новых расширений см. в разделе Раздел 5.1.17.

Примеры

Установите расширение hstore в текущую базу данных, поместив его объекты в схему addons:

CREATE EXTENSION hstore SCHEMA addons;

Другой способ достичь того же:

SET search_path = addons;
CREATE EXTENSION hstore;

Совместимость

CREATE EXTENSION является расширением Digital Q.DataBase.

Смотрите также

ALTER EXTENSION, DROP EXTENSION
Наверх
свяжитесь
с нами
контакты
Для прямой связи с нами вы можете использовать контакты ниже, либо оставить заявку через форму обратной связи, и мы обязательно свяжемся с вами

*поля обязательные к заполнению