声明服务器监听客户端连接的 TCP/IP 地址。值是一个逗号分隔的主机名和/或数字 IP 地址。特殊项 * 对应所有可用 IP 接口。如果这个列表是空的,那么服务器不会监听任何 IP 接口,这种情况下,只有 Unix 域套接字可以用于连接数据库。缺省值 localhost 只允许进行本地"回环"连接。这个参数只能在服务器启动的时候设置。
服务器监听的 TCP 端口;缺省是 5432 。请注意同一个端口号用于服务器监听的所有 IP 地址。这个参数只能在服务器启动的时候设置。
允许和数据库连接的最大并发连接数。缺省通常是 100 ,但是如果内核设置不支持这么大(在 initdb 的时候判断),可能会比这个数少。这个参数只能在服务器启动的时候设置。
增大这个参数可能导致 PostgreSQL 要求更多的 System V 共享内存或者信号灯,可能超过操作系统缺省配置的许可值。必要的话,参阅节16.4.1获取有关如何调节这个参数的信息。
决定为 PostgreSQL 超级用户连接而保留的连接"槽位"。一次最多可以同时激活 max_connections 个连接。在活跃的并发连数接到了 max_connections 减去 superuser_reserved_connections 的时候,新的连接就只能由超级用户发起了。
缺省值是 3 。这个值必须小于 max_connections 的值。这个参数只能在服务器启动的时候设置。
声明服务器监听客户端连接的 Unix 域套接字目录。缺省通常是 /tmp ,但是可以在编译的时候修改。这个值只能在服务器启动的时候设置。
设置 Unix 域套接字的所属组(套接字的所属用户总是启动服务器的用户)。可以与选项 unix_socket_permissions 一起用于对套接字进行访问控制。缺省是一个空字符串,表示当前用户的缺省组。这个选项只能在服务器启动的时候设置。
设置 Unix 域套接字的访问权限。Unix 域套接字使用普通的 Unix 文件系统权限集。这个选项值应该是数值的形式,也就是那种 Unix 域套接字调用 chmod
和 umask
接受的形式。如果使用自定义的八进制格式,数字必须以 0 开头。
缺省的权限是 0777 ,意思是任何人都可以连接。合理的候选是 0770(只有用户和同组的人可以访问,又见 unix_socket_group)和 0700(只有用户自己可以访问)。请注意,对于 Unix 域套接字,只有写权限有意义,读和执行权限没有任何意义。
这个访问控制机制与章20里描述的用户认证毫无关系。
这个值只能在服务器启动的时候设置。
声明 Bonjour 广播名称。空字符串 ''(缺省值)表示使用计算机名。如果编译时没有打开 Bonjour 支持那么将忽略这个参数。这个值只能在服务器启动的时候设置。
在那些支持 TCP_KEEPIDLE 套接字选项的系统上,声明发送保持活跃信号的间隔秒数,不发送保持活跃信号,连接就会处于闲置状态。零使用系统缺省。如果不支持 TCP_KEEPIDLE ,这个参数必须为零。在通过 Unix 域套接字进行的连接上,这个选项被忽略。
在那些支持 TCP_KEEPINTVL 套接字选项的系统上,以秒数声明在重新传输之间等待响应的时间。零使用系统缺省。如果不支持 TCP_KEEPINTVL ,这个参数必须为零。在通过 Unix 域套接字进行的连接上,这个选项被忽略。
在支持 TCP_KEEPCNT 套接字选项的系统上,声明在切断连接之前可以丢失多少个保持活跃信号。零使用系统缺省。如果不支持 TCP_KEEPCNT ,这个参数必须为零。在通过 Unix 域套接字进行的连接上,这个选项被忽略。
完成客户端认证的最长时间,以秒计。如果一个客户端没有在这段时间里完成认证协议,服务器将中断连接。这样就避免了出问题的客户端无限制地占据连接资源。缺省是 60 秒。这个选项只能在命令行上或者在 postgresql.conf 里设置。
启用 SSL 连接。请在使用这个选项之前阅读节16.7。缺省是 off 。这个选项只能在服务器启动的时候设置。
在 CREATE USER 或 ALTER USER 里声明了一个口令,而又没有写 ENCRYPTED 或 UNENCRYPTED 的时候,这个选项决定口令是否要加密。缺省是 on(加密口令)。
设置 Kerberos 服务器键字文件的位置。参阅节20.2.3获取细节。这个选项只能在服务器启动的时候设置。
设置 Kerberos 服务名。参阅节20.2.3获取细节。这个值只能在服务器启动的时候设置。
设置服务主的主机名部分。这个和 krb_srvname 结合在一起生成完整的服务主,比如:krb_srvname/krb_server_hostname@REALM 。如果没有设置,缺省是服务器主机名。参阅节20.2.3获取细节。这个值只能在服务器启动的时候设置。
设置 Kerberos 用户名是否大小写无关。缺省是 off(大小写相关)。这个选项只能在服务器启动的时候设置。
允许针对每个数据库的用户名。缺省是关闭的。这个选项只能在命令行上或者在 postgresql.conf 里设置。
如果打开这个选项,你应该像 username@dbname 这样创建用户。在给一个正在连接的客户端传递 username 的时候,必须给用户名附加 @ 和数据库名字,然后服务器查找该数据库相关的用户名字。请注意,如果你在 SQL 环境里创建包含 @ 的名字时,你需要用引号包围用户名。
打开这个选项之后,你还是能够创建普通的全局用户。只要在客户端声明用户的时候附加一个 @ 即可。在服务器查找这个用户名之前,这个 @ 会被剥除。
【注意】这个特性只是临时试验用途,直到找到一个完全的解决方案。那个时候,这个选项将被删除。