前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >PostgreSQL中常见的14个用户安全配置

PostgreSQL中常见的14个用户安全配置

作者头像
数据和云
发布2020-07-08 14:20:20
2K0
发布2020-07-08 14:20:20
举报
文章被收录于专栏:数据和云数据和云

墨墨导读:本文主要介绍PostgreSQL数据库中一些常见用户安全配置。

1. 限制用户连接数

max_connections根据应用并发量设置合理的值,对普通数据库用户设置限制连接数,并设置少量的保留超级用户登录连接数。

代码语言:javascript
复制
postgres=# create user app1 connection limit 5;CREATE ROLE

2. 修改默认端口

建议修改默认5432端口。

代码语言:javascript
复制
postgres=# select * from current_setting('port'); current_setting----------------- 6000(1 row)

3. 不使用默认postgres数据库

建议新建数据库后删除默认的postgres数据库

代码语言:javascript
复制
postgres=# create database my_app_db owner app1;CREATE DATABASEpostgres=# \c my_app_dbYou are now connected to database "my_app_db" as user "postgres".my_app_db=# drop database postgres;DROP DATABASE

4. 自定义超级用户

建议删除默认超级用户postgres,新建不同名称超级用户,也可再initdb时使用-U指定。

代码语言:javascript
复制
$ initdb -D /opt/data6000/ -U admin -W

5. 修改监听地址

根据业务场景设置,比如设置为localhost或服务器IP。

代码语言:javascript
复制
#listen_addresses = 'localhost'#listen_addresses = '192.168.99.100'#listen_addresses = '192.168.99.100,192.168.99.200'

6. 配置客户端认证

参考配置如下

代码语言:javascript
复制
# 服务端本地数据库用户免密登录local      all   all       trust# 拒绝超级用户从网络登录host      all   postgres  0.0.0.0/0     reject# 其它用户密码验证登陆host      all   all      0.0.0.0/0  scram-sha-256# 流复制用户密码验证登录host      replication  replica  192.168.99.101/32     md5

7. 设置socket访问方式

参考配置如下

代码语言:javascript
复制
unix_socket_directories='$PGDATA'unix_socket_group=''unix_socket_permissions='0700'

8. 使用pgpass文件

linux和window都建议使用pgpass文件

代码语言:javascript
复制
Linux$ cat .pgpass192.168.99.200:5432:postgres:postgres:admin192.168.99.227:6432:*:app1:yourPassword
win10C:\Users\pcsuc\AppData\Roaming\postgresql\pgpass.conflocalhost:5432:*:postgres:admin192.168.99.227:6432:*:app1:yourPassword

9. 用户密码安全策略

可参考《PostgreSQL用户密码安全策略管理》(链接:https://www.modb.pro/db/21476)

10. 权限配置

表权限按最小最需原则分配,建议不使用public模式 revoke all on DATABASE XXX from public; 可参考《PostgreSQL用户表权限设计与配置》(链接:https://www.modb.pro/db/23483)

11. 记录数据库日志并清理

配置合理的日志级别,常见级别如warn 配置日期过期策略,如配置最大100个循环写文件,或按周循环等。

12. 备份恢复测试

初始化数据目录时建议打开checksums,数据库备份后需要做恢复测试,确保有效性,可以使用第三方备份恢复管理器,如pg_rman,pg_probackup,pgBackRest等。

13. 备份数据文件加密存储

备份文件可以手工压缩加密或者借助第三方备份工具,如pgBackRest等。

14. 小版本升级

定期升级数据库小版本,下面是源码方式升级主要步骤:

  1. 下载编译新版本的源码程序到新目录
  2. 重新编译现有数据库所有源码安装的扩展
  3. 停数据库服务
  4. 使用符号链接新目录到原目录
  5. 新版本服务启动
  6. 检查无误后移除旧版本

墨天轮原文链接:https://www.modb.pro/db/27257(复制到浏览器中打开或者点击“阅读原文”)

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-07-06,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 数据和云 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1. 限制用户连接数
  • 2. 修改默认端口
  • 3. 不使用默认postgres数据库
  • 4. 自定义超级用户
  • 5. 修改监听地址
  • 6. 配置客户端认证
  • 7. 设置socket访问方式
  • 8. 使用pgpass文件
  • 9. 用户密码安全策略
  • 10. 权限配置
  • 11. 记录数据库日志并清理
  • 12. 备份恢复测试
  • 13. 备份数据文件加密存储
  • 14. 小版本升级
相关产品与服务
数据库
云数据库为企业提供了完善的关系型数据库、非关系型数据库、分析型数据库和数据库生态工具。您可以通过产品选择和组合搭建,轻松实现高可靠、高可用性、高性能等数据库需求。云数据库服务也可大幅减少您的运维工作量,更专注于业务发展,让企业一站式享受数据上云及分布式架构的技术红利!
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档