F.69. uuid-ossp
ÐодÑÐ»Ñ uuid-ossp пÑедоÑÑавлÑÐµÑ ÑÑнкÑии Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ ÑнивеÑÑалÑнÑÑ
ÑникалÑнÑÑ
иденÑиÑикаÑоÑов (UUID) по Ð¾Ð´Ð½Ð¾Ð¼Ñ Ð¸Ð· неÑколÑкиÑ
ÑÑандаÑÑнÑÑ
алгоÑиÑмов. РнÑм Ñакже еÑÑÑ ÑÑнкÑии, вÑдаÑÑие ÑпеÑиалÑнÑе UUID-конÑÑанÑÑ. ÐÑÐ¾Ñ Ð¼Ð¾Ð´ÑÐ»Ñ Ð½ÐµÐ¾Ð±Ñ
одим ÑолÑко в ÑлÑÑае оÑобÑÑ
ÑÑебований, коÑоÑÑм не ÑдовлеÑвоÑÑÐµÑ ÑÑнкÑионалÑноÑÑÑ Ð² ÑдÑе PostgreSQL. ÐÑÑÑоеннÑе в ÑдÑо ÑпоÑÐ¾Ð±Ñ Ð³ÐµÐ½ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ UUID опиÑÐ°Ð½Ñ Ð² Разделе 9.14.
ÐаннÑй модÑÐ»Ñ ÑÑиÑаеÑÑÑ Â«Ð´Ð¾Ð²ÐµÑеннÑм», Ñо еÑÑÑ ÐµÐ³Ð¾ могÑÑ ÑÑÑанавливаÑÑ Ð¾Ð±ÑÑнÑе полÑзоваÑели, имеÑÑие пÑаво CREATE в ÑекÑÑей базе даннÑÑ
.
F.69.1. ФÑнкÑии uuid-ossp
РТаблиÑе F.43 Ð¿Ð¾ÐºÐ°Ð·Ð°Ð½Ñ ÑÑнкÑии, пÑедназнаÑеннÑе Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑаÑии UUID. ЧеÑÑÑе алгоÑиÑма Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑаÑии UUID, обознаÑаемÑе номеÑами веÑÑий 1, 3, 4 и 5, опиÑÐ°Ð½Ñ Ð² ÑÑандаÑÑÐ°Ñ ITU-T Rec. X.667, ISO/IEC 9834-8:2005 и RFC 4122. (ÐлгоÑиÑма веÑÑии 2 неÑ.) ÐаждÑй из ÑÑÐ¸Ñ Ð°Ð»Ð³Ð¾ÑиÑмов пÑедназнаÑен Ð´Ð»Ñ ÑазлиÑнÑÑ ÑÑÐµÑ Ð¿ÑименениÑ.
ТаблиÑа F.43. ФÑнкÑии Ð´Ð»Ñ Ð³ÐµÐ½ÐµÑиÑÐ¾Ð²Ð°Ð½Ð¸Ñ UUID
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
ÐенеÑиÑÑÐµÑ UUID веÑÑии 1. Такой UUID вклÑÑÐ°ÐµÑ Ð² ÑÐµÐ±Ñ MAC-адÑÐµÑ ÐºÐ¾Ð¼Ð¿ÑÑÑеÑа и ÑекÑÑее вÑемÑ. ÐамеÑÑÑе, ÑÑо UUID Ñакого Ñипа ÑаÑкÑÑваÑÑ Â«Ð»Ð¸ÑноÑÑÑ» компÑÑÑеÑа, ÑоздавÑего иденÑиÑикаÑоÑ, и вÑÐµÐ¼Ñ ÑÑой опеÑаÑии, ÑÑо Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð½ÐµÐ¿ÑиемлемÑм Ð´Ð»Ñ Ð¾Ð¿ÑеделÑннÑÑ Ð¿Ñиложений, где важна конÑиденÑиалÑноÑÑÑ. |
ÐенеÑиÑÑÐµÑ UUID веÑÑии 1, но вмеÑÑо ÑеалÑного MAC-адÑеÑа компÑÑÑеÑа иÑполÑзÑеÑÑÑ ÑлÑÑайнÑй гÑÑпповой MAC-адÑеÑ. |
ÐенеÑиÑÑÐµÑ UUID веÑÑии 3 Ð´Ð»Ñ Ð·Ð°Ð´Ð°Ð½Ð½Ð¾Ð³Ð¾ пÑоÑÑÑанÑÑва имÑн UUID и Ñказанного имени. ÐÑоÑÑÑанÑÑво имÑн должно задаваÑÑÑÑ Ð¾Ð´Ð½Ð¾Ð¹ из ÑпеÑиалÑнÑÑ
конÑÑанÑ, коÑоÑÑе вÑдаÑÑÑÑ ÑÑнкÑиÑми ÐапÑимеÑ: SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); Ðз паÑамеÑÑа name бÑÐ´ÐµÑ Ð¿Ð¾Ð»ÑÑен MD5-Ñ ÐµÑ, Ñак ÑÑо из ÑгенеÑиÑованного UUID нелÑÐ·Ñ Ð±ÑÐ´ÐµÑ Ð²Ð¾ÑÑÑановиÑÑ Ð¸Ð¼Ñ. РгенеÑиÑÑемÑÑ Ñаким алгоÑиÑмом UUID Ð½ÐµÑ ÑлеменÑа ÑлÑÑайноÑÑи или завиÑимоÑÑи Ð¾Ñ Ð¾ÐºÑÑжениÑ, Ñак ÑÑо они могÑÑ Ð±ÑÑÑ Ð²Ð¾ÑпÑоизведенÑ. |
ÐенеÑиÑÑÐµÑ UUID веÑÑии 4, коÑоÑÑй полноÑÑÑÑ Ð¾Ð¿ÑеделÑеÑÑÑ ÑлÑÑайнÑми ÑиÑлами. |
ÐенеÑиÑÑÐµÑ UUID веÑÑии 5, коÑоÑÑй Ð¿Ð¾Ñ Ð¾Ð¶ на веÑÑÐ¸Ñ 3, но Ñ ÐµÑ ÑаÑÑÑиÑÑваеÑÑÑ Ð¿Ð¾ алгоÑиÑÐ¼Ñ SHA-1. ÐеÑÑÐ¸Ñ 5 пÑедпоÑÑиÑелÑнее веÑÑии 3, Ñак как SHA-1 ÑÑиÑаеÑÑÑ Ð±Ð¾Ð»ÐµÐµ безопаÑнÑм, Ñем MD5. |
ТаблиÑа F.44. ФÑнкÑии, возвÑаÑаÑÑие UUID-конÑÑанÑÑ
ФÑнкÑÐ¸Ñ ÐпиÑание |
|---|
ÐÑдаÑÑ Â«Ð½Ñлевой» UUID, коÑоÑÑй не ÑÑиÑаеÑÑÑ Ð´ÐµÐ¹ÑÑвиÑелÑнÑм UUID. |
ÐÑдаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ, обознаÑаÑÑÑÑ Ð¿ÑоÑÑÑанÑÑво имÑн DNS Ð´Ð»Ñ UUID. |
ÐÑдаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ, обознаÑаÑÑÑÑ Ð¿ÑоÑÑÑанÑÑво имÑн URL Ð´Ð»Ñ UUID. |
ÐÑдаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ, обознаÑаÑÑÑÑ Ð¿ÑоÑÑÑанÑÑво имÑн иденÑиÑикаÑоÑов обÑекÑов ISO (OID, ISO Object Identifier) Ð´Ð»Ñ UUID. (ÐдеÑÑ Ð¸Ð¼ÐµÑÑÑÑ Ð² Ð²Ð¸Ð´Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑÑ Ð¾Ð±ÑекÑов ASN.1, коÑоÑÑе никак не ÑвÑÐ·Ð°Ð½Ñ Ñ OID, пÑименÑемÑми в Postgres Pro.) |
ÐÑдаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ, обознаÑаÑÑÑÑ Ð¿ÑоÑÑÑанÑÑво имÑн Ñ ÑникалÑнÑми именами X.500 Ð´Ð»Ñ UUID. |
F.69.2. СбоÑка 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.69.3. ÐвÑоÑ
ÐиÑÐµÑ ÐйзенÑÑаÑÑ <[email protected]>