Модуль uuid-ossp предоставляет функции для генерации универсально
уникальных идентификаторов (UUID) с использованием одного из нескольких стандартных алгоритмов. Также
есть функции для создания определённых специальных UUID-констант.
Этот модуль необходим только для специальных требований, выходящих за рамки того, что
доступно в ядре Digital Q.DataBase. См. Раздел 2.6.14 для встроенных способов генерации UUID.
Этот модуль считается «доверенным», то есть он может быть
установлен не-суперпользователями, имеющими привилегию CREATE
в текущей базе данных.
uuid-ossp #Таблица 8.6.44 показывает функции, доступные для генерации UUID. Соответствующие стандарты ITU-T Rec. X.667, ISO/IEC 9834-8:2005 и RFC 4122 определяют четыре алгоритма для генерации UUID, идентифицируемые номерами версий 1, 3, 4 и 5. (Алгоритма версии 2 нет.) Каждый из этих алгоритмов может подходить для разных наборов приложений.
Таблица 8.6.44. Функции для генерации UUID
Функция Описание |
|---|
|
Генерирует UUID версии 1. При этом используются MAC-адрес компьютера и временная метка. Обратите внимание, что UUID такого типа раскрывают идентификатор компьютера, создавшего идентификатор, и время, когда это было сделано, что может сделать их непригодными для некоторых приложений, критичных к безопасности. |
|
Генерирует UUID версии 1, но использует случайный групповой (multicast) MAC-адрес вместо реального MAC-адреса компьютера. |
Генерирует UUID версии 3 в заданном пространстве имён, используя
указанное входное имя. Пространство имён должно быть одной из специальных
констант, создаваемых функциями Например: SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); Параметр имени будет хеширован с помощью MD5, поэтому исходный текст не может быть получен из сгенерированного UUID. Генерация UUID этим методом не имеет случайного или зависящего от окружения элемента и поэтому воспроизводима. |
Генерирует UUID версии 4, который полностью получается из случайных чисел. |
Генерирует UUID версии 5, который работает как UUID версии 3, за исключением того, что в качестве метода хеширования используется SHA-1. Версию 5 следует предпочесть версии 3, поскольку SHA-1 считается более безопасной, чем MD5. |
Таблица 8.6.45. Функции, возвращающие UUID-константы
Функция Описание |
|---|
Возвращает константу «nil» UUID, которая не встречается как реальный UUID. |
Возвращает константу, обозначающую пространство имён DNS для UUID. |
Возвращает константу, обозначающую пространство имён URL для UUID. |
Возвращает константу, обозначающую пространство имён ISO object identifier (OID) для UUID. (Это относится к ASN.1 OID, которые не связаны с OID, используемыми в Digital Q.DataBase.) |
Возвращает константу, обозначающую пространство имён X.500 distinguished name (DN) для UUID. |
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 не выбирает одну автоматически.
Peter Eisentraut <peter_e@gmx.net>