开启IP限制
初始化数据库后,系统会在data目录中创建相应的配置文件等。这时的数据库只针对本机使用,其他主机上的客户端是无法连接到该服务器的。需要对外服务需要更改listen_addresses参数。 # vim data/postgresql.conf
#listen_addresses = 'localhost'
listen_addresses = '*'
权限配置pg_hba.conf说明
初始化数据后,查看data/pg_hba.conf文件,下面是默认的一些配置
# TYPE DATABASE USER ADDRESS METHOD
# "local" is for Unix domain socket connections only
local all all trust
# IPv4 local connections:
host all all 127.0.0.1/32 trust
# IPv6 local connections:
关于trust
这个参数表示【信任】,即所有配置这一选项的相关权限被认为是信任,不需要输入密码即可完成对数据库的相关操作;而不管你是否在创建用户的过程中是否设置密码。
如:
host all all 127.0.0.1/32 trust
表示:所有来自环回端口127.0.0.1/32的,对于所有用户,对所有数据库均可无密码直接访问。
关于md5
当然使用上面的参数无法实现数据库的对外服务,那样会有很大的安全性问题。使用md5的参数可以实现传统的访问安全性,但是需要注意的是为用户设置的密码必须是md5类型的。
# 生成密码
echo -n 'ThisIsPass' | md5sum | cut -d ' ' -f1
d9ccfb38a7e57e8f91d30e5d
为用户设置密码
postgres143/bin/psql -h localhost -p 5432 -U postgres -w
alter user postgres password 'd9ccfb38a7e57e8f91d30e5dbf300ad5';
设置pg_hba.conf的选项
host postgres postgres 0.0.0.0/0 md5
host toktok_db toktok 0.0.0.0/0 md5
重新启动数据库
systemctl restart postgresql
关于ssl的方式
待续
创建数据库并配置权限
创建数据及用户
echo -n 'ThisIsPass' | md5sum | cut -d ' ' -f1
d9ccfb38a7e57e8f91d30e5dbf30
create user test with password 'd9ccfb38a7e57e8f91d30e5dbf30';
create database test with encoding='utf-8' owner=test;
配置访问权限
# vim data/pg_hba.conf
host toktok liyanqiao 192.168.38.0/20 md5
#重启数据库服务
systemctl restart postgresql