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

17.3. Connexions et authentification

17.3.1. Paramétrages de connexion

listen_addresses (string)

Spécifie 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 autorise seulement les connexions locales de type « loopback ». Ce paramètre peut seulement être configuré au lancement du serveur.

port (integer)

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

max_connections (integer)

Détermine le nombre maximum de connexions concurrentes au serveur de la base de données. La valeur par défaut typique est 100 mais pourrait être bien moindre si vos paramétrages du noyau ne le supportent pas (ce qui est déterminé lors du initdb). Ce paramètre peut seulement être initialisé au lancement du serveur.

Augmenter ce paramètre pourrait faire que PostgreSQL™ réclame plus de mémoire partagée System V ou de sémaphores que ne le permet la configuration par défaut de votre 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)

Détermine le nombre de connexions (« 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 actives en même temps est d'au moins max_connections moins superuser_reserved_connections, les nouvelles connexions ne seront acceptées que pour les superutilisateurs.

La valeur par défaut est de 2. La valeur doit être plus petite que la valeur de max_connections. Ce paramètre peut seulement être configuré uniquement au lancement du serveur.

unix_socket_directory (string)

Spécifie le répertoire du socket de domaine Unix sur lequel le serveur écoute les connexions des applications clients. Par défaut, il s'agit de /tmp mais cela peut être modifié au moment de la construction. Ce paramètre peut seulement être configuré 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 l'option 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 utilisant le groupe par défaut pour l'utilisateur en cours. Cette option est seulement disponible 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 de l'option 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 (seul l'utilisateur et le groupe, voir aussi unix_socket_group) et 0700 (seul l'utilisateur) (notez, que pour un socket de domaine Unix, seul le droit d'accès en écriture importe et, donc, il n'est 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.

Cette option est seulement disponible au lancement du serveur.

bonjour_name (string)

Spécifie le nom broadcast de Bonjour™. Par défaut, le nom de l'ordinateur est utilisé, spécifié comme une chaîne vide. Cette option est ignorée si le serveur n'était pas compilé avec le support Bonjour™. Cette option est seulement configurable au lancement du serveur.

tcp_keepalives_idle (integer)

Sur les systèmes supportant l'option socket TCP_KEEPIDLE, spécifie le nombre de secondes entre l'envoi de signaux « keepalives » sur une connexion restant silencieuse. Une valeur de 0 permet d'utiliser la valeur par défaut du système. Si TCP_KEEPIDLE n'est pas supporté, ce paramètre doit valoir 0. Cette option est ignorée pour les connexions réalisées via un socket de domaine Unix.

tcp_keepalives_interval (integer)

Sur les systèmes supportant l'option socket TCP_KEEPINTVL, spécifie le temps, en seconde, à attendre une réponse à un « keepalive » avant de retransmettre. Une valeur de 0 permet d'utiliser la valeur par défaut du système. Si TCP_KEEPINTVL n'est pas supporté, ce paramètre doit valoir 0. Cette option est ignorée 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, spécifie combien de « keepalive » peuvent être perdus avant de considérer la connexion comme perdue. Une valeur de 0 permet d'utiliser la valeur par défaut du système. Si TCP_KEEPCNT n'est pas supporté, ce paramètre doit valoir 0. Cette option est ignorée 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. Cette option est configurable au lancement du serveur et dans le fichier postgresql.conf. La valeur par défaut est de 60 secondes.

ssl (boolean)

Active les connexions SSL. Merci de lire la Section 16.7, « Connexions tcp/ip sécurisées avec ssl » avant d'utiliser ceci. C'est désactivé par défaut. Ce paramètre est seulement disponible 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)

Cette option détermine si le mot de passe doit être crypté quand un mot de passe est spécifié dans CREATE USER ou ALTER USER sans écrire soit ENCRYPTED soit UNENCRYPTED. Actif par défaut (crypte 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 des détails. Ce paramètre peut seulement être configuré au lancement du système.

krb_srvname (string)

Configure le nom du service Kerberos. Voir la Section 20.2.3, « Authentification Kerberos » pour les détails. Ce paramètre peut seulement être configuré 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 générer le service principal complet, c'est-à-dire krb_srvname/krb_server_hostname@REALM.

Sans configuration, la valeur par défaut est d'autoriser 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 peut seulement être configuré au lancement du serveur.

krb_caseins_users (boolean)

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

db_user_namespace (boolean)

Ceci active les noms d'utilisateur par base de données. Désactivé par défaut.

Si cette option est activée, vous devrez créer des utilisateurs de nom nomutilisateur@nom_base. Quand nomutilisateur est passé pour un client en cours de connexion, @ 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é dans le serveur. Notez que lorsque vous créez des utilisateurs dont le nom contient un @ dans l'environnement SQL, vous devez mettre le nom entre guillemets.

Cette option activée, vous pouvez toujours créer des utilisateurs globaux ordinaires. Ajoutez simplement @ lors de la spécification du nom du client. Le @ sera supprimé avant de chercher le nom de l'utilisateur dans le serveur.

[Note]

Note

Cette fonctionnalité est temporaire jusqu'à ce qu'une solution complète soit trouvée. Cette option sera supprimée.