PostgreSQL远程设置

 

PostgreSQL默认情况下,远程访问不能成功,如果需要允许远程访问,需要修改两个配置文件,说明如下:

1.postgresql.conf
修改 #listen_addresses = 'localhost' 为:
listen_addresses = '*'

2.pg_hba.conf

pg_hba.conf 文件指定了哪些IP地址和哪些用户可以连接到 PostgreSQL 数据库, 同时还规定了用户必须使用何种身份验证方式登录。针对该文件的修改可动态生效,执行一次配置重加载即可。

在该配置文件的host all all 127.0.0.1/32 md5行下添加以下配置,或者直接将这一行修改为以下配置
# IPv4 local connections:
#host all all 127.0.0.1/32 trust
host all all 0.0.0.0/0 md5

说明:上面两个文件修改后如果要生效要重启数据库。
如果不希望允许所有IP远程访问,则可以将上述配置项中的0.0.0.0设定为特定的IP值。

 

身份验证方法

trust    
这是最不安全的身份验证模式, 用户无须提供密码就可以连接到数据库。
只要源端 IP 地址、连接用户名、要访问的 database 名都与该条规则匹配,用户就可以连上来。
trust 模式很不安全,因此应对其使用予以限制,即只能允许从数据库服务器本机发起的连接或者是同属内网的用户发起的连接使用此模式。

md5    
该 模式很常用,要求连接发起者携带用 md5 算法加密的密码。

password
该模式要求连接发起者携带明 密码进行身份验证。

ident    
该身份验证模式下,系统会将请求发起者的操作系统用户映射 为 PostgreSQL 数据库内部用户,并以该内部用户的权限登录,且此时无须提供登录密码。
Windows上不支持 ident 验证方式。

peer    
该模式下系统会直接从操作系统内核获取当前连接发起者的操作系统用户名,如果与其请求连接的 PostgreSQL 用户名一致,即可连接成功。
该模式仅可用于 Linux、 BSD、 Mac OS X 和 Solaris,并且仅可用于本地服务器发起的连接。

cert    
该模式要求客户端必须使用 SSL 方式进行连接。连接发起者必须提供一个合法的 SSL 证书。
该模式使用一个身份认证文件( 比如 pg_ident)来将 SSL 证书映射为 PostgreSQL 数据库的内部用户, 该模式在所有支持 SSL 连接的平台上都可用。

 



 

posted @ 2022-01-01 22:55  屠魔的少年  阅读(5)  评论(0)    收藏  举报