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

30.12. Variables d'environnement

Les variables d'environnement suivantes peuvent être utilisées pour sélectionner des valeurs par défaut pour les paramètres de connexion, valeurs qui seront utilisées par PQconnectdb, PQsetdbLogin et PQsetdb si aucune valeur n'est directement précisée par le code d'appel. Elles sont utiles pour éviter de coder en dur les informations de connexion à la base de données dans les applications clients, par exemple.

  • PGHOST initialise le nom du serveur de la base de données. S'il commence avec une barre oblique, il spécifie une communication de domaine Unix plutôt qu'une communication TCP/IP ; la valeur est le nom du répertoire où le fichier socket est stocké (dans une installation par défaut, cela serait /tmp).

  • PGHOSTADDR spécifie l'adresse IP numérique du serveur de la base de données. Elle peut être initialisée avec PGHOST pour éviter la surcharge des recherches DNS. Voir la documentation de ces paramètres, dans PQconnectdb ci-dessus, pour des détails sur leur interaction.

    Quand ni PGHOST ni PGHOSTADDR n'est initialisé, le comportement par défaut est de se connecter en utilisant un socket de domaine Unix ; ou sur les machines sans sockets de domaine Unix, libpq essaiera de se connecter à localhost.

  • PGPORT initialise le numéro de port TCP ou l'extension du fichier socket de domaine Unix pour la communication avec le serveur PostgreSQL™.

  • PGDATABASE initialise le nom de la base de données sous PostgreSQL™.

  • PGUSER initialise le nom de l'utilisateur se connectant à la base de données.

  • PGPASSWORD initialise le mot de passe utilisé si le serveur demande une authentification par mot de passe. L'utilisation de cette variable d'environnement n'est pas recommandée pour des raisons de sécurité (certains systèmes d'exploitation autorisent les utilisateurs autres que root à voir les variables d'environnement du processus via ps) ; à la place, considérez l'utilisation du fichier ~/.pgpass (voir la Section 30.13, « Fichier de mots de passe »).

  • PGPASSFILE spécifie le nom du fichier de mot de passe à utiliser pour les recherches. Sa valeur par défaut est ~/.pgpass (voir la Section 30.13, « Fichier de mots de passe »).

  • PGSERVICE initialise le nom du service à recherche dans pg_service.conf. Cela offre un raccourci pour la configuration de tous les paramètres.

  • PGREALM initialise le domaine Kerberos à utiliser avec PostgreSQL™ s'il est différent du domaine local. Si PGREALM est initialisé, les applications libpq tenteront une authentification avec les serveurs de ce domaine et utiliseront les fichiers tickets séparés pour éviter les conflits avec les fichiers tickets locaux. Cette variable d'environnement est seulement utilisée si l'authentification Kerberos est sélectionnée par le serveur.

  • PGOPTIONS initialise les options d'exécution supplémentaires pour le serveur PostgreSQL™.

  • PGSSLMODE détermine si et avec quelle priorité une connexion SSL sera négociée avec le serveur. Il existe quatre modes : disable tentera seulement une connexion non cryptée, donc sans SSL ; allow négociera en commençant par une connexion non SSL puis, s'il échoue, tentera une connexion SSL ; prefer (la valeur par défaut) négociera en commençant par une connexion SSL puis, en cas d'échec, essaiera une connexion non SSL ; require essaiera seulement une connexion SSL. Si PostgreSQL™ est compilé sans le support de SSL, utiliser l'option require générera une erreur bien que les options allow et prefer seront acceptées mais, en fait, libpq ne tentera pas de connexion SSL.

  • PGREQUIRESSL initialise une connexion via SSL. S'il est initialisé à « 1 », libpq refusera de se connecter si le serveur n'accepte pas de connexion SSL (équivalent à un sslmode valant prefer). Cette option est obsolète et laisse la place au paramétrage sslmode. Elle est seulement disponible si PostgreSQL™ est compilé avec le support de SSL.

  • PGSSLKEY spécifie le jeton matériel qui stocke la clé secrète pour le certificat client. La valeur de cette variable doit consister d'un nom de moteur séparé par une virgule (les moteurs sont les modules chargeables d'OpenSSL™) et un identifiant de clé spécifique au moteur. Si elle n'est pas configurée, la clé secrète doit être conservée dans un fichier.

  • PGKRBSRVNAME configure le nom du service Kerberos à utiliser lors de l'authentification avec Kerberos 5 ou GSSAPI.

  • PGGSSLIB configure la bibliothèque GSS pour qu'elle utilise l'authentification GSSAPI.

  • PGCONNECT_TIMEOUT initialise le nombre de secondes maximum que libpq attendra pour une connexion au serveur PostgreSQL™. Si non initialisée ou si valant zéro, libpq attendra indéfiniment. Il n'est pas recommandé d'initialiser le délai à moins de deux secondes.

Les variables d'environnement par défaut peuvent être utilisées pour spécifier le comportement par défaut de chaque session PostgreSQL™ (voir aussi les commandes ALTER USER et ALTER DATABASE pour des moyens d'initialiser le comportement par défaut sur des bases par utilisateur ou par bases de données).

  • PGDATESTYLE initialise le style par défaut de la représentation de la date et de l'heure (équivalent à SET datestyle TO ...).

  • PGTZ initialise le fuseau horaire par défaut (équivalent à SET timezone TO ...).

  • PGCLIENTENCODING initialise le codage de l'ensemble des caractères par défaut (équivalent à SET client_encoding TO ...).

  • PGGEQO initialise le mode par défaut pour l'optimiseur générique de requêtes (équivalent à SET geqo TO ...).

Référez-vous à la commande SQL SET pour plus d'informations sur des valeurs correctes pour ces variables d'environnement.

Les variables d'environnement suivantes déterminent le comportement interne de libpq ; elles surchargent les valeurs internes par défaut.

  • PGSYSCONFDIR configure le répertoire contenant le fichier pg_service.conf.

  • PGLOCALEDIR configure le répertoire contenant les fichiers locale pour l'internationalisation des messages.