| Documentation PostgreSQL 8.3.5 > Annexes > Modules supplémentaires fournis > uuid-ossp | |
tsearch2
|
vacuumlo
|
Le module uuid-ossp fournit des fonctions pour générer des identifiants uniques universels (UUIDs) en utilisant un des algorithmes standards. Elle fournit aussi des fonctions pour produire certaines constantes UUID spéciales.
Ce module dépends de la bibliothèque OSSP UUID, qui est disponible sur http://www.ossp.org/pkg/lib/uuid/.
Les standards en question, ITU-T Rec. X.667, ISO/IEC 9834-8:2005 et RFC 4122, spécifient quatre algorithmes pour générer 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.35. Fonctions pour la génération d'UUID
| Fonction | Description |
|---|---|
| uuid_generate_v1() |
Cette fonction génère un UUID version 1. Ceci implique l'adresse MAC de l'ordinateur et un horodatage. Notez que les UUID de ce type révèlent l'identité de l'ordinateur qui a créé l'identifiant et l'heure de création de cet identifiant, ce qui pourrait ne pas convenir pour certaines applications sensibles à la sécurité. |
| uuid_generate_v1mc() |
Cette fonction génère un UUID version 1 mais utilise une adresse MAC multicast à la place de la vraie adresse de l'ordinateur. |
| uuid_generate_v3(namespace uuid, name text) |
Cette fonction génère un UUID version 3 dans l'espace de nom donné en utilisant le nom indiqué en entrée. L'espace de nom doit être une des constantes spéciales produites par les fonctions uuid_ns_*() indiquées ci-dessous. (En théorie, cela peut être tout UUID.) Le nom est un identifiant dans l'espace de nom sélectionné. |
| uuid_generate_v4() |
Cette fonction génère un UUID version 4 qui est entièrement réalisé à partir de nombres aléatoires. |
| uuid_generate_v5(namespace uuid, name text) |
Cette fonction 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. |
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 au hasard ou dépendant de l'environnement et est du coup reproductible.
Tableau F.36. Fonctions renvoyant des constantes UUID
| uuid_nil() |
Une constante UUID « nil », qui ne correspond pas à un UUID réel. |
| uuid_ns_dns() |
Constante désignant l'espace de nom pour les UUID. |
| uuid_ns_url() |
Constante désignant l'espace de nom URL pour les UUID. |
| uuid_ns_oid() |
Constante désignant l'espace de nom des identifiants d'objets ISO pour les UUIDs. (Ceci aboutit aux OID ASN.1, mais n'a pas de relation avec les OID de PostgreSQL™.) |
| uuid_ns_x500() |
Constante désignant l'espace de nom « X.500 distinguished name » (DN) pour les UUID. |
Peter Eisentraut <peter_e@gmx.net>

