PostgreSQL使用(二)配置权限

开启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