タイプ: bool
デフォルト: off
コンテキスト: sighup
再起動: false

このパラメータはデータベース毎のユーザ名を可能にします。デフォルトはオフです。このパラメータはpostgresql.confファイル、またはサーバのコマンドラインでのみ設定可能です。

これがオンの場合、username@dbnameの様にしてユーザを作成しなければなりません。usernameが接続中のクライアントより渡された時、 @およびデータベース名がユーザ名に付加され、そのデータベース特有のユーザ名をサーバが見に行きます。SQL環境下で@を含む名前のユーザを作成する場合、そのユーザ名は引用符で括られなければならないことに注意してください。

このパラメータを有効にしていても通常の広域ユーザを作成することができます。クライアントにユーザ名を指定する時に、たとえばjoe@のように単に@を付け加えてください。@はサーバがユーザ名を検索する以前に取り去られます。

db_user_namespaceはクライアントとサーバのユーザ名の表示を区別することができます。認証検査は常にサーバのユーザ名で行われるので、認証方式はクライアントのではなくサーバのユーザ名で構成されなければなりません。md5では、クライアントおよびサーバの両方でユーザ名をソルトとして使用するので、md5db_user_namespaceと一緒に使用することはできません。

この機能は完全な解決方法が見つかるまでの一時的なものです。完全な解決方法が見つかったら、このオプションは削除される予定です。

推奨事項 [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.

件のコメント