F.60. uuid-ossp — генератор UUID#
F.60. uuid-ossp — генератор UUID #
Модуль uuid-ossp предоставляет функции для генерации уникальных идентификаторов (UUID) с использованием одного из нескольких стандартных алгоритмов. Также имеются функции для создания определенных специальных констант UUID.
Этот модуль необходим только для особых требований, выходящих за рамки возможностей основного продукта Tantor BE. См. Раздел 9.14 для встроенных способов генерации UUID.
Этот модуль считается "доверенным", то есть его можно установить
недоступным пользователям, у которых есть привилегия CREATE
в текущей базе данных.
F.60.1. uuid-ossp Функции #
Таблица F.35 показывает функции, доступные для генерации UUID. Соответствующие стандарты ITU-T Rec. X.667, ISO/IEC 9834-8:2005 и RFC 4122 определяют четыре алгоритма для генерации UUID, идентифицируемые номерами версий 1, 3, 4 и 5. (Алгоритма версии 2 не существует.) Каждый из этих алгоритмов может быть подходящим для различных наборов приложений.
Таблица F.35. Функции для генерации UUID
Функция Описание |
|---|
|
Генерирует UUID версии 1. Для этого используется MAC-адрес компьютера и временная метка. Обратите внимание, что UUID такого типа раскрывает идентификатор компьютера, создавшего идентификатор, и время, когда это произошло, что может сделать его непригодным для некоторых приложений, требующих повышенной безопасности. |
|
Генерирует UUID версии 1, но использует случайный мультикаст MAC-адрес вместо реального MAC-адреса компьютера. |
Генерирует UUID версии 3 в заданном пространстве имен с использованием указанного входного имени. Пространство имен должно быть одной из специальных констант, созданных функциями Например: SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); Параметр name будет хешироваться с использованием алгоритма MD5, поэтому исходный текст нельзя получить из сгенерированного UUID. Генерация UUID с использованием этого метода не имеет случайного или зависящего от окружения элемента и, следовательно, является воспроизводимой. |
Генерирует версию 4 UUID, которая полностью производится из случайных чисел. |
Генерирует UUID версии 5, который работает аналогично UUID версии 3, за исключением использования хеш-функции SHA-1. Версия 5 предпочтительнее версии 3, поскольку считается, что SHA-1 более безопасен, чем MD5. |
Таблица F.36. Функции, возвращающие константы UUID
Функция Описание |
|---|
Возвращает константу UUID “nil”, которая не является реальным UUID. |
Возвращает константу, обозначающую пространство имен DNS для UUID. |
Возвращает константу, обозначающую пространство имен URL для UUID. |
Возвращает константу, обозначающую пространство имен объектных идентификаторов (OID) ISO для UUID. (Это относится к ASN.1 OID, которые не связаны с OID, используемыми в Tantor BE). |
Возвращает константу, обозначающую пространство имен X.500 для уникальных идентификаторов (UUID). |
F.60.2. Сборка uuid-ossp #
Исторически этот модуль зависел от библиотеки OSSP UUID, что и объясняет его название. Хотя библиотека OSSP UUID все еще доступна по адресу http://www.ossp.org/pkg/lib/uuid/, она плохо поддерживается и становится все труднее портировать ее на новые платформы. Теперь uuid-ossp может быть собран без библиотеки OSSP на некоторых платформах. В Linux и некоторых других платформах подходящие функции предоставляются в библиотеке libuuid, которая изначально появилась в проекте e2fsprogs (хотя в современных версиях Linux она считается частью util-linux-ng). При вызове configure укажите --with-uuid=e2fs, чтобы использовать libuuid из e2fsprogs, или --with-uuid=ossp, чтобы использовать библиотеку OSSP UUID. На одной машине может быть доступно несколько таких библиотек, поэтому configure не выбирает одну автоматически.
F.60.3. Автор #
Peter Eisentraut <peter_e@gmx.net>