PostgreSQLLa base de données la plus sophistiquée au monde.

17.3. Connexions et authentification

17.3.1. Paramètres de connexion

listen_addresses (string)

Indique les adresses TCP/IP sur lesquelles le serveur écoute les connexions des applications client. La valeur prend la forme d'une liste de noms d'hôte ou d'adresses IP numériques séparés par des virgules. L'entrée spéciale * correspond à toutes les interfaces IP disponibles. Si la liste est vide, le serveur n'écoute aucune interface IP, auquel cas seuls les sockets de domaine Unix peuvent être utilisés pour s'y connecter. La valeur par défaut est localhost, ce qui n'autorise que les connexions locales de type « loopback ». Ce paramètre ne peut être configuré qu'au lancement du serveur.

port (integer)

Le port TCP sur lequel le serveur écoute ; 5432 par défaut. Le même numéro de port est utilisé pour toutes les adresses IP que lesquelles le serveur écoute. Ce paramètre ne peut être configuré qu'au lancement du serveur.

max_connections (integer)

Indique le nombre maximum de connexions concurrentes au serveur de base de données. La valeur par défaut typique est de 100 connexions mais peut être moindre si les paramètres du noyau ne le supportent pas (ce qui est déterminé lors du initdb). Ce paramètre ne peut être initialisé qu'au lancement du serveur.

Augmenter ce paramètre peut obliger PostgreSQL™ à réclamer plus de mémoire partagée System V ou de sémaphores que ne le permet la configuration par défaut du système d'exploitation. Voir la Section 16.4.1, « Mémoire partagée et sémaphore » pour plus d'informations sur la façon d'ajuster ces paramètres, si nécessaire.

superuser_reserved_connections (integer)

Indique le nombre de connecteurs (« slots ») réservés aux connexions des superutilisateurs PostgreSQL™. Au plus max_connections connexions peuvent être actives simultanément. À chaque fois que le nombre de connexions simultanément actives atteint max_connections moins superuser_reserved_connections, les nouvelles connexions ne sont acceptées que pour les superutilisateurs.

La valeur par défaut est de trois connexions. La valeur doit être plus petite que la valeur de max_connections. Ce paramètre ne peut être configuré qu'au lancement du serveur.

unix_socket_directory (string)

Indique le répertoire du socket de domaine Unix sur lequel le serveur écoute les connexions des applications client. Par défaut, il s'agit de /tmp mais cela peut être modifié au moment de la construction. Ce paramètre ne peut être configuré qu'au lancement du serveur.

unix_socket_group (string)

Configure le groupe propriétaire du socket de domaine Unix (l'utilisateur propriétaire de la socket est toujours l'utilisateur qui lance le serveur). En combinaison avec le paramètre unix_socket_permissions, ceci peut être utilisé comme un mécanisme de contrôle d'accès supplémentaire pour les connexions de domaine Unix. Par défaut, il s'agit d'une chaîne vide, ce qui sélectionne le groupe par défaut de l'utilisateur courant. Ce paramètre n'est disponible qu'au lancement du serveur.

unix_socket_permissions (integer)

Configure les droits d'accès au socket de domaine Unix. Ce socket utilise l'ensemble habituel des droits du système de fichiers Unix. La spécification du paramètre est attendue dans le mode numérique avec la forme acceptée par les appels système chmod et umask (pour utiliser le format octal, ce nombre doit commencer avec un 0 (zéro)).

Les droits par défaut sont 0777, signifiant que tout le monde peut se connecter. Les alternatives raisonnables sont 0770 (utilisateur et groupe uniquement, voir aussi unix_socket_group) et 0700 (utilisateur uniquement) (pour un socket de domaine Unix, seul le droit d'accès en écriture importe ; il n'est donc pas nécessaire de donner ou de révoquer les droits de lecture ou d'exécution).

Ce mécanisme de contrôle d'accès est indépendant de celui décrit dans le Chapitre 20, Authentification du client.

Ce paramètre n'est positionnable qu'au lancement du serveur.

bonjour_name (string)

Indique le nom du broadcast Bonjour™. Le nom de l'ordinateur est utilisé si ce paramètre est configuré avec une chaîne vide (ce qui est la valeur par défaut). Ce paramètre est ignoré si le serveur n'est pas compilé avec le support Bonjour™. Cette option n'est configurable qu'au lancement du serveur.

tcp_keepalives_idle (integer)

Sur les systèmes supportant l'option de socket TCP_KEEPIDLE, indique le nombre de secondes avant l'envoi de signaux « keepalives » sur une connexion silencieuse (idle). La valeur de zéro permet d'utiliser celle par défaut du système. Si TCP_KEEPIDLE n'est pas supporté, ce paramètre doit valoir zéro. Ce paramètre est ignoré pour les connexions réalisées via un socket de domaine Unix.

tcp_keepalives_interval (integer)

Sur les systèmes supportant l'option de socket TCP_KEEPINTVL, indique le temps, en secondes, d'attente d'une réponse à un « keepalive » avant de retransmettre. La valeur de zéro permet d'utiliser celle par défaut du système. Si TCP_KEEPINTVL n'est pas supporté, ce paramètre doit valoir zéro. Ce paramètre est ignoré pour les connexions réalisées via un socket de domaine Unix.

tcp_keepalives_count (integer)

Sur les systèmes supportant l'option socket TCP_KEEPCNT, indique le nombre de « keepalive » qui peuvent être perdus avant de considérer que la connexion est tombée. La valeur zéro permet d'utiliser celle par défaut du système. Si TCP_KEEPCNT n'est pas supporté, ce paramètre doit valoir zéro. Ce paramètre est ignoré pour les connexions réalisées via un socket de domaine Unix.

17.3.2. Sécurité et authentification

authentication_timeout (integer)

Temps maximum pour terminer l'authentification du client en secondes. Si un client n'a pas terminé le protocole d'authentification dans ce délai, le serveur rompt la connexion. Ceci protège le serveur des clients bloqués occupant une connexion indéfiniment. La valeur par défaut est d'une minute. Cette option est configurable au lancement du serveur et dans le fichier postgresql.conf.

ssl (boolean)

Active les connexions SSL. Lire la Section 16.7, « Connexions tcp/ip sécurisées avec ssl » avant de l'utiliser. Désactivé par défaut. Ce paramètre n'est configurable qu'au lancement du serveur.

ssl_renegotiation_limit (integer)

Indique la quantité de données pouvant transiter sur une connexion en SSL avant qu'une renégotiation de la session ne survienne. La renégotiation de la session diminue le risque d'analyse du chiffrement lorsque de gros volumes de données sont envoyées mais cela a un coût important pour les performances. Les données émises et réceptionnées sont prises en compte lors de la vérification de la limite. Si ce paramètre est à 0, la renégotiation est désactivée. La valeur par défaut est de 512 Mo.

[Note]

Note

Les bibliothèques SSL antérieures à novembre 2009 ne sont pas sécurisées lors de l'utilisation de la renégotiation SSL à cause d'une faille dans le protocole SSL. Pour corriger rapidement cette faille, certains fournisseurs de la bibliothèque ont proposé des bibliothèques SSL ne disposant plus de la fonctionnalité de renégotiation. Si une de ces bibliothèques sont utilisées sur le serveur ou sur le client, la renégotiation SSL doit être désactivée.

password_encryption (boolean)

Ce paramètre détermine si un mot de passe, indiqué dans CREATE USER ou ALTER USER sans qu'il soit précisé ENCRYPTED ou UNENCRYPTED, doit être chiffré. Actif par défaut (chiffre le mot de passe).

krb_server_keyfile (string)

Configure l'emplacement du fichier contenant la clé secrète du serveur Kerberos. Voir la Section 20.2.3, « Authentification Kerberos » pour les détails. Ce paramètre ne peut être configuré qu'au lancement du serveur.

krb_srvname (string)

Configure le nom du service Kerberos. Voir la Section 20.2.3, « Authentification Kerberos » pour les détails. Ce paramètre ne peut être configuré qu'au lancement du serveur.

krb_server_hostname (string)

Configure la partie du nom de l'hôte du service principal. Ceci, combiné avec krb_srvname, est utilisé pour engendrer le service principal complet, c'est-à-dire krb_srvname/krb_server_hostname@REALM. Sans configuration, le comportement par défaut autorise tout service principal correspondant à une entrée dans la table des clés. Voir la Section 20.2.3, « Authentification Kerberos » pour les détails. Ce paramètre ne peut être configuré qu'au lancement du serveur.

krb_caseins_users (boolean)

Indique si les noms des utilisateurs Kerberos doivent être traités en respectant la casse. Désactivé par défaut (insensible à la casse, valeur off), ce paramètre ne peut être configuré qu'au lancement du serveur.

db_user_namespace (boolean)

Active les noms d'utilisateur par base de données. Désactivé par défaut. Ce paramètre ne peut être configuré que dans le fichier postgresql.conf ou indiqué sur la ligne de commande.

Si ce paramètre est activé, les utilisateurs doivent être créés sous la forme nomutilisateur@nom_base. Quand nomutilisateur est passé pour un client se connectant, @ et le nom de la base de données sont ajoutés au nom de l'utilisateur et ce nom d'utilisateur spécifique à la base de données est recherché par le serveur. Lorsque des utilisateurs dont le nom contient un @ est créé dans l'environnement SQL, ce nom doit être placé guillemets.

Ce paramètre activé, il rest possible de créer des utilisateurs globaux ordinainres. Il suffit pour cela d'ajouter @ au nom du client. Le @ est supprimé avant que le serveur ne recherche ce nom.

[Note]

Note

Cette fonctionnalité, temporaire, sera supprimée lorsqu'une solution complète sera trouvée.