暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

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

数据和云 2020-07-07
1147

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


1. 限制用户连接数

max_connections根据应用并发量设置合理的值,对普通数据库用户设置限制连接数,并设置少量的保留超级用户登录连接数。
    postgres=# create user app1 connection limit 5;
    CREATE ROLE

    2. 修改默认端口

    建议修改默认5432端口。
      postgres=# select * from current_setting('port');
      current_setting
      -----------------
      6000
      (1 row)

      3. 不使用默认postgres数据库

      建议新建数据库后删除默认的postgres数据库
        postgres=# create database my_app_db owner app1;
        CREATE DATABASE
        postgres=# \c my_app_db
        You are now connected to database "my_app_db" as user "postgres".
        my_app_db=# drop database postgres;
        DROP DATABASE

        4. 自定义超级用户

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

          5. 修改监听地址

          根据业务场景设置,比如设置为localhost或服务器IP。
            #listen_addresses = 'localhost'
            #listen_addresses = '192.168.99.100'
            #listen_addresses = '192.168.99.100,192.168.99.200'

            6. 配置客户端认证

            参考配置如下
              # 服务端本地数据库用户免密登录
              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访问方式

              参考配置如下
                unix_socket_directories='$PGDATA'
                unix_socket_group=''
                unix_socket_permissions='0700'

                8. 使用pgpass文件

                linux和window都建议使用pgpass文件
                  Linux
                  $ cat .pgpass
                  192.168.99.200:5432:postgres:postgres:admin
                  192.168.99.227:6432:*:app1:yourPassword


                  win10
                  C:\Users\pcsuc\AppData\Roaming\postgresql\pgpass.conf
                  localhost:5432:*:postgres:admin
                  192.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(复制到浏览器中打开或者点击“阅读原文”)

                  推荐阅读:144页!分享珍藏已久的数据库技术年刊


                  数据和云

                  ID:OraNews

                  如有收获,请划至底部,点击“在看”,谢谢!


                  点击下图查看更多 ↓

                  云和恩墨大讲堂 | 一个分享交流的地方

                  长按,识别二维码,加入万人交流社群


                  请备注:云和恩墨大讲堂

                    点个“在看”
                  你的喜欢会被看到❤
                  文章转载自数据和云,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                  评论