F.67. uuid-ossp#
F.67. uuid-ossp
Модуль uuid-ossp
предоставляет функции для генерации уникальных идентификаторов (UUID) с использованием одного из нескольких стандартных алгоритмов. Также имеются функции для создания определенных специальных констант UUID.
Этот модуль необходим только для особых требований, выходящих за рамки возможностей основного продукта Tantor SE. См. Раздел 9.14 для встроенных способов генерации UUID.
Этот модуль считается "доверенным", то есть его можно установить
недоступным пользователям, у которых есть привилегия CREATE
в текущей базе данных.
F.67.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 SE). |
Возвращает константу, обозначающую пространство имен X.500 для уникальных идентификаторов (UUID). |
F.67.2. Building uuid-ossp
Исторически этот модуль зависел от библиотеки OSSP UUID, что объясняет его название. В то время как библиотеку OSSP UUID все еще можно найти по адресу http://www.ossp.org/pkg/lib/uuid/, она не поддерживается должным образом и становится все сложнее переносить на новые платформы. uuid-ossp
теперь может быть построен без библиотеки OSSP на некоторых платформах. В FreeBSD и некоторых других производных от BSD платформах подходящие функции создания UUID включены в основную библиотеку libc
. В Linux, macOS и некоторых других платформах подходящие функции предоставляются в библиотеке libuuid
, которая изначально поставлялась с проектом e2fsprogs
(хотя на современных версиях Linux она считается частью util-linux-ng
). При вызове configure
укажите --with-uuid=bsd
, чтобы использовать функции BSD, или --with-uuid=e2fs
, чтобы использовать libuuid
из e2fsprogs
, или --with-uuid=ossp
, чтобы использовать библиотеку OSSP UUID. На конкретной машине может быть доступно более одной из этих библиотек, поэтому configure
не выбирает автоматически одну из них.
F.67.3. Автор
Peter Eisentraut <[email protected]>