Postgrsql专栏(6)postgresql.conf配置文件详细介绍

连接相关设置
1、listen_addresses
指定服务器侦听客户端应用程序连接的TCP / IP地址。 该值采用逗号分隔的主机名和/或数字IP地址列表的形式。 特殊条目*对应于所有可用的IP接口。 条目0.0.0.0允许侦听所有IPv4地址,并且::允许侦听所有IPv6地址。 如果列表为空,则服务器根本不侦听任何IP接口,在这种情况下,只能使用Unix域套接字来连接它。 缺省值是localhost,它只允许进行本地TCP / IP“环回”连接。 虽然客户端身份验证允许对谁可以访问服务器进行细致控制,但listen_addresses控制哪些接口接受连接尝试,这有助于防止在不安全的网络接口上重复发出恶意连接请求。 该参数只能在服务器启动时设置。
这里写图片描述

2、port
服务器侦听的TCP端口; 5432默认。 请注意,相同的端口号用于服务器侦听的所有IP地址。 该参数只能在服务器启动时设置。

3、max_connections
确定到数据库服务器的最大并发连接数。 缺省值通常为100个连接,但如果您的内核设置不支持它(在initdb期间确定),则可能会更少。 该参数只能在服务器启动时设置。

运行备用服务器(即为从库)时,必须将此参数设置为与主服务器上相同或更高的值。 否则,查询将不被允许在备用服务器中。
Postgrsql专栏(6)postgresql.conf配置文件详细介绍_第1张图片

4、superuser_reserved_connections
确定为PostgreSQL超级用户连接保留的连接“插槽”的数量。 最多max_connections连接可以同时活动。 只要活动并发连接的数量至少为max_connections minus superuser_reserved_connections,新连接将仅被超级用户接受,并且不会接受新的复制连接。

默认值是三个连接。 该值必须小于max_connections的值。 该参数只能在服务器启动时设置。
Postgrsql专栏(6)postgresql.conf配置文件详细介绍_第2张图片

5、unix_socket_directories
指定服务器要侦听来自客户端应用程序的连接的Unix域套接字的目录。 列出由逗号分隔的多个目录可以创建多个套接字。 条目之间的空白被忽略; 如果您需要在名称中包含空格或逗号,请用双引号括住目录名称。 一个空值指定不侦听任何Unix域套接字,在这种情况下,只有TCP / IP套接字可用于连接到服务器。 默认值通常是/ tmp,但可以在构建时更改。 该参数只能在服务器启动时设置。

除了名为.s.PGSQL.nnnn的套接字文件本身之外,其中nnnn是服务器的端口号,将在每个unix_socket_directories目录中创建一个名为.s.PGSQL.nnnn.lock的普通文件。 这两个文件都不应该手动删除。

这个参数在Windows上是不相关的,它没有Unix域套接字。

6、unix_socket_group
设置Unix域套接字的拥有组。 (套接字的拥有用户始终是启动服务器的用户。)结合参数unix_socket_permissions,可以将其用作Unix域连接的附加访问控制机制。 默认情况下,这是空字符串,它使用服务器用户的默认组。 该参数只能在服务器启动时设置。

这个参数在Windows上是不相关的,它没有Unix域套接字。

7、unix_socket_permissions
设置Unix域套接字的访问权限。 Unix域套接字使用通常的Unix文件系统权限集。期望参数值是以chmod和umask系统调用接受的格式指定的数字模式。 (要使用习惯的八进制格式,数字必须以0(零)开头。)

默认权限是0777,意味着任何人都可以连接。合理的选择是0770(仅用户和组)和0700(仅用户)。 (请注意,对于Unix域套接字,只有写入权限很重要,所以设置或撤消读取或执行权限没有意义。)

该参数只能在服务器启动时设置。

该参数在系统上无关紧要,特别是从Solaris 10开始的Solaris,完全忽略套接字许可。在那里,通过将unix_socket_directories指向具有仅限于所需观众的搜索权限的目录,可以实现类似的效果。这个参数在Windows上也是不相关的,它没有Unix域套接字。

8、bonjour
通过Bonjour启用服务器存在的广告。 默认是关闭的。 该参数只能在服务器启动时设置。不过该参数似乎在linux下没有什么效果。
这里写图片描述

9、bonjour_name
指定Bonjour服务名称。 如果此参数设置为空字符串”(这是默认值),则使用计算机名称。 如果服务器未使用Bonjour支持进行编译,则此参数将被忽略。 该参数只能在服务器启动时设置。

10、tcp_keepalives_idle
指定TCP在发送Keepalive消息给客户端之后不活动的秒数。 值为0时使用系统默认值。 此参数仅在支持TCP_KEEPIDLE或等效套接字选项的系统上以及在Windows上受支持; 在其他系统上,它必须是零。 在通过Unix域套接字连接的会话中,该参数将被忽略并始终读为零。

11、tcp_keepalives_interval
指定客户端未确认的TCP保持活动消息应重新传输的秒数。 值为0时使用系统默认值。 此参数仅在支持TCP_KEEPINTVL或等效套接字选项的系统上以及在Windows上受支持; 在其他系统上,它必须是零。 在通过Unix域套接字连接的会话中,该参数将被忽略并始终读为零。

12、tcp_keepalives_count
指定在服务器连接到客户端之前可能丢失的TCP保持活动的数量已被终止。 值为0时使用系统默认值。 此参数仅在支持TCP_KEEPCNT或等效套接字选项的系统上受支持; 在其他系统上,它必须是零。 在通过Unix域套接字连接的会话中,该参数将被忽略并始终读为零。

安全和认证相关配置
1、authentication_timeout
以秒为单位完成客户端身份验证的最长时间。 如果可能的客户端在这段时间内还没有完成认证协议,服务器将关闭连接。 这可以防止挂起的客户端无限期地占用连接。 默认值是一分钟。 该参数只能在postgresql.conf文件或服务器命令行中设置。

2、ssl
启用SSL连接。 默认是关闭的。 该参数只能在服务器启动时设置。 SSL通讯只能通过TCP / IP连接进行。

3、ssl_ca_file
指定包含SSL服务器证书颁发机构(CA)的文件的名称。 缺省值为空,表示未加载CA文件,并且不执行客户端证书验证。 (在以前的PostgreSQL版本中,这个文件的名称被硬编码为root.crt。)相对路径是相对于数据目录的。 该参数只能在服务器启动时设置。

4、ssl_cert_file
指定包含SSL服务器证书的文件的名称。 缺省值是server.crt。 相对路径与数据目录有关。 该参数只能在服务器启动时设置。

5、ssl_crl_file
指定包含SSL服务器证书吊销列表(CRL)的文件的名称。 缺省值为空,表示没有加载CRL文件。 (在以前的PostgreSQL版本中,该文件的名称被硬编码为root.crl。)相对路径与数据目录相关。 该参数只能在服务器启动时设置。

6、ssl_key_file
指定包含SSL服务器私钥的文件的名称。 缺省值是server.key。 相对路径与数据目录有关。 该参数只能在服务器启动时设置。

7、ssl_ciphers
指定允许在安全连接上使用的SSL密码套件列表。有关此设置的语法和支持的值列表,请参阅OpenSSL软件包中的密码手册页。默认值为HIGH:MEDIUM:+ 3DES:!aNULL。这通常是合理的,除非你有特定的安全要求。该参数只能在服务器启动时设置。

8、password_encryption
当在CREATE USER或ALTER ROLE中指定密码而未写入ENCRYPTED或UNENCRYPTED时,此参数确定密码是否要加密。 默认打开(加密密码)。

9、krb_server_keyfile
设置Kerberos服务器密钥文件的位置。 该参数只能在postgresql.conf文件或服务器命令行中设置。

10、krb_caseins_users
设置是否应该区分大小写地处理GSSAPI用户名。 默认是关闭的(区分大小写)。 该参数只能在postgresql.conf文件或服务器命令行中设置。

11、db_user_namespace
此参数启用每个数据库用户名。它默认关闭。该参数只能在postgresql.conf文件或服务器命令行中设置。

如果这样,您应该将用户创建为username @ dbname。当连接客户端传递用户名时,@和数据库名称将附加到用户名中,并且该服务器会查找特定于数据库的用户名。请注意,当您在SQL环境中创建名称包含@的用户时,您需要引用用户名。

启用此参数后,您仍然可以创建普通的全局用户。在客户端指定用户名时简单追加@,例如乔@。在用户名被服务器查找之前,@将被剥离。

db_user_namespace导致客户端和服务器的用户名表示方式不同。身份验证检查始终使用服务器的用户名完成,因此必须为服务器的用户名配置身份验证方法,而不是客户端。因为md5在客户端和服务器上均使用用户名作为salt,所以md5不能与db_user_namespace一起使用。

你可能感兴趣的:(Postgrsql专栏(6)postgresql.conf配置文件详细介绍)