Le module uuid-ossp
fournit des fonctions
pour créer des identifiants uniques universels (UUID) à l'aide
d'algorithmes standard. Il fournit aussi des fonctions pour produire
certaines constantes UUID spéciales. Ce module est uniquement nécessaire
pour des fonctionnalités supplémentaires qui vont au-delà de ce que fournit
le moteur de PostgreSQL. Voir Section 9.14 pour les méthodes internes de génération d'UUID.
Ce module est considéré comme « trusted », ce qui signifie qu'il
peut être installé par de simples utilisateurs (sans attribut
SUPERUSER
) possédant l'attribut
CREATE
sur la base de données courante.
uuid-ossp
#Tableau F.33 montre les fonctions disponibles pour générer des UUIDs. Les standards en question, ITU-T Rec. X.667, ISO/IEC 9834-8:2005, et RFC 4122, spécifient quatre algorithmes pour produire des UUID, identifiés par les numéros de version 1, 3, 4 et 5. (Il n'existe pas d'algorithme version 2.) Chacun de ces algorithmes peut convenir pour un ensemble différent d'applications.
Tableau F.33. Fonctions pour la génération d'UUID
Fonction Description |
---|
Crée un UUID version 1. La fonction utilise l'adresse MAC de l'ordinateur et un horodatage. Les UUID de ce type révèlent l'identité de l'ordinateur qui les a générés et l'heure de création, ce qui peut être bloquant pour certaines applications sensibles à la sécurité. |
Génère un UUID version 1, mais depuis une adresse MAC multicast aléatoire à la place de la vraie adresse MAC de l'ordinateur. |
Génère un UUID version 3 dans l'espace de nom indiqué
en utilisant le nom spécifié en entrée. L'espace de nom doit être
une des constantes spéciales produites par les fonctions
Par exemple : SELECT uuid_generate_v3(uuid_ns_url(), 'http://www.postgresql.org'); Le paramètre name sera haché avec MD5, donc la version claire ne peut pas être récupérée à partir de l'UUID généré. La génération des UUID par cette méthode ne comprend aucun élément dépendant du hasard ou de l'environnement, et est donc reproductible. |
Génère un UUID version 4, entièrement dérivé de nombres aléatoires. |
Génère un UUID version 5, qui fonctionne comme un UUID version 3 sauf que SHA-1 est utilisé comme méthode de hachage. La version 5 devrait être préférée à la version 3, car SHA-1 est considéré plus sécurisé que MD5. |
Tableau F.34. Fonctions renvoyant des constantes UUID
Fonction Description |
---|
Renvoie une constante UUID « nil », qui ne correspond pas à un UUID réel. |
Renvoie une constante désignant l'espace de nom DNS pour les UUID. |
Renvoie une constante désignant l'espace de nom URL pour les UUID. |
Renvoie une constante désignant l'espace de nom des identifiants d'objets ISO pour les UUID. (Ceci concerne les OID ASN.1, qui n'ont pas de relation avec les OID de PostgreSQL.) |
Renvoie une constante désignant l'espace de nom du DN (distinguished name) X.500 pour les UUID. |
uuid-ossp
#
Historiquement, ce module dépendant de la bibliothèque OSSP UUID, d'où
provient le nom de ce module. Bien que la bibliothèque OSSP UUID soit
toujours disponible sur http://www.ossp.org/pkg/lib/uuid/,
elle n'est pas correctement maintenue, et devient de plus en plus difficile
à porter vers de nouvelles plateformes. uuid-ossp
peut
maintenant être construit sans la bibliothèque OSSP sur certaines plateformes.
Sur FreeBSD et certains dérivés BSD, les fonctions de création
UUID sont incluses dans la bibliothèque libc
. Sur Linux,
macOS et quelques autres plateformes, des fonctions adéquates sont
fournies par la bibliothèque libuuid
, qui, à l'origine,
provient du projet e2fsprogs
(bien que, sur les Linux
modernes, il soit considéré comme faisant partie de
util-linux-ng
). Lors de l'appel à
configure
, spécifiez --with-uuid=bsd
pour utiliser les fonctions BSD ou --with-uuid=e2fs
pour
utiliser la libuuid
de e2fsprogs
ou
encore --with-uuid=ossp
pour utiliser la bibliothèque OSSP
UUID.
Il se peut que plusieurs versions de cette bibliothèque soient disponibles
sur une même machine ; de ce fait, configure
n'en choisit
pas une de façon automatique.
Peter Eisentraut <peter_e@gmx.net>