Type: bool
Défaut: off
Contexte: sighup
Redémarrer: false

Ce paramètre autorise des noms d'utilisateur par base de données. Il est à off par défaut. Ce paramètre ne peut être positionné que dans le fichier postgresql.conf ou sur la ligne de commande du serveur.

S'il est activé, vous devez créer des utilisateurs en tant que username@dbname. Quand username est transmis par une connexion cliente, @ et le nom de la base sont ajoutés au nom d'utilisateur, et ce nom spécifique à la base sera recherché par le serveur. Notez que si vous créez des utilisateurs dont le nom comprend un @, vous devrez ajouter des guillemets autour de ce nom.

Même avec ce paramètre activé, vous pouvez toujours créer les utilisateurs globaux ordinaires. Ajoutez simplement @ en donnant le nom dans le client, comme par exemple pierre@. Le @ sera supprimé avant la recherche de l'utilisateur par le serveur.

db_user_namespace provoque un écart entre les représentations des noms du client et du serveur. Les tests d'authentification sont toujours fait avec le nom d'utilisateur du serveur, donc les méthodes d'authentification doivent être configurées avec le nom connu du serveur, pas celui du client. Comme md5 utilise le nom d'utilisateur comme sel sur le client comme sur le serveur, md5 ne peut être utilisé avec db_user_namespace.

Cette option est considérée comme une mesure provisoire jusqu'à ce qu'une solution complète soit trouvée. À ce moment, cette option sera supprimée.

Recommandations [EN]

This setting is a hack to work around the lack of per-database users in PostgreSQL. Unless you desperately need it, avoid this setting as it will eventually be replaced by something more maintainable.

Commentaires