循序渐进PostgreSQL(三)- 网络访问配置、用户及角色管理、表空间及数据库创建.pdf
文本预览下载声明
iiiihheerroo@@CCSSDDNN
专专注注于于数数据据库库与与信信息息检检索索技技术术
循循序序渐渐进进PPoosstt rreeSSQQLL ((三三)) :: 网网络络访访问问配配置置、、用用户户及及角角色色管管理理、、表表空空间间及及数数据据库库创创建建
分类: Post reSQL 2013-11-29 14:05 291人阅读 评论 (0) 收藏 举报
前边若干文章,只是简单的介绍了一下PG的手动安装和启动。
如:
http://blo ./iihero/article/details/8254115 (安装FAQ)
循序渐进Post reSQL: 实现Post reSQL 自启动
循序渐进Post reSQL: 学习pqxx C++ API访问
使使用用CC编编写写的的动动态态链链接接库库为为PPoosstt rreeSSQQLL数数据据库库添添加加 自自定定义义函函数数
要正常使用PG,也必须要了解它的基本网络配置、用户权限以及数据库是如何创建,掌握了这些,
其它的用法与别的数据库基本上也就大同小异了。
1. 网络配置
默认情况下, PG的配置文件:
postgresql.conf里有一行:
listen_addresses = localhost;
在pg_hba.conf里有另外几行:
# IPv4 local connections: host all all 12 .0.0.1/32 trust
# IPv6 local connections: host all all ::1/128 trust
意思是只监听本机,对本机的所有用户都是trust ,无需密码即可访问。 IP地址限制为12 .0.0.1,
/32的意思是32个bit都是有效地址。
我要限制只有网段10.128.98.*上的主机才能访问,首先,要修改postgresql.conf,
listen_addresses = *;
再在pg_hba.conf里加一行:
host all all /24 md5
(注,如果你只想某台机器访问,e.g. , 使用/32 即可,表示 32位全部是
有效地址)
对所有网段全开放:
#IPV4
host all all /0 md5
#IPV6
host all all ::/0 md5
IPV6什么时候会用到,当你用psql -h hostname 而不是IP地址的时候,可能会碰到。
具体的描述定义,可以参照:/docs/8.2/static/datatype-net-types.html
1
在此以后,就可以从别的主机上访问本机的数据库了。
2. 用户、组及角色, 以及schema创建与管理
PG里头的角色与用户是有区分开的,有些细微区别。和别的数据库不一样。记住就好。
它的user相当于role加上一个login, 它的group相当于role加一个nologin的限制, 即本质上都是role.
这就能解释为什么你create完一个role之后,又不能登录的奇怪现象了。
iihero=# \du
List of roles
Role name | Attributes | Member of
++
spring | Superuser, Create role, Create DB | {}
创建一个新用户spring2, 带有createdb createuser 权限
iihero=# create user spring2 password spring1 createdb createuser;
CREATE ROLE
iihero=# \du
显示全部