首页 > 数据库 >PostgreSQL技术大讲堂 - Part 9:pg_hba.conf配置

PostgreSQL技术大讲堂 - Part 9:pg_hba.conf配置

时间:2023-03-06 16:22:22浏览次数:51  
标签:PostgreSQL hba 用户 host Part pg conf 连接

 

PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同学们有帮助,欢迎持续关注CUUG PG技术大讲堂。

Part 9:实例连接访问控制

内容1:PG实例访问控制概述

内容2:pg_hba.conf 文件

内容3:pg_hba.conf 名单格式

内容4:pg_hba.conf 常见配置实例

9.1、PG实例访问控制概述

 实例访问控制就像是一道防火墙,用它来控制来自于不同主机、不同用户是否允许访问指定的数据库、以及验证方式。

 

 

9.2、pg_hba.conf文件

 客户端认证是由一个配置文件(通常名为pg_hba.conf并被存放在数据目录中)控制(HBA表示基于主机的认证)。

 在initdb初始化数据目录时,它会安装一个默认的pg_hba.conf文件。不过我们也可以把认证配置文件放在其它地方。

 pg_hba.conf文件的常用格式是一组记录,每行一条。空白行将被忽略, #注释字符后面的任何文本也被忽略。记录不能跨行。

 一条记录由若干用空格/或制表符分隔的域组成。如果域值用双引号包围,那么它可以包含空格。在数据库、用户或地址域中 引用一个关键字(例如,all或replication) 将使该词失去其特殊 含义,并且只是匹配一个有该名字的数据库、用户或主机。

9.3、pg_hba.conf名单格式

 TYPE:指定连接类型 

 local:表示本地连接,只对Unix/Linux系统有效,使用socket方式登录 

 host:表示主机通过TCP/IP连接 

 hostssl:表示主机连接需要SSL加密方式连接

 DATABASE:指定连接的数据库 

 all:表示所有的数据库 

 db_name:表示指定的数据库 

 replication:表示主备复制时的连接 

 USER:指定连接的用户 

 all:表有所有用户 ? user_name:表示指定的用户 

 +group_name:表示一组用户 

 @file_name:表示文件中包含的用户列表 

 ADDRESS:指定连接的客户端 

 127.0.0.1/32:表示本地客户端主机 

 0.0.0.0/0:表示所有客户端主机 

 host_name:表示指定的主机名(hosts文件中包含) 

 ip_addr/net_mask:表示指定的ip地址或者网段

pg_hba.conf 示例:

host all +g1 0.0.0.0/0 md5 #g1组

 

host all u1 192.168.18.0/24 md5 #某个网段

 METHOD:指定验证方式

 trust:信任客户端连接,无需提供密码 

 scram-sha-256:这是当前提供的方法中最安全的一种,但是旧的客户端库不支持这种方法。 

 md5:它能防止口令嗅探并且防止口令在服务器上以明文存储,但是无法保护攻击者想办法从服务器上窃取了口令哈希的情况。 

 password:方法password以明文形式发送口令,因此它对于口令“嗅探”攻击很脆弱。 

 ident:该模式下系统会将请求发起者的操作系统用户映射为PostgesSQL数据库内 部用户,并以该内部用户的权限登录,且此时无需提供登录密码。操作系统用户 与数据库内部用户之间的映射关系会记录在pg_ident.conf文件中。 

 peer:该模式使用连接发起端的操作系统名进行身份验证。仅限于Linux、BSD、 Mac OS X和Solaris,并且仅可用于本地服务器发起的连接。

 reject:该模式表示拒绝所有请求。

9.4、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:

host all all ::1/128 trust

# Allow replication connections from localhost, by a user with the

# replication privilege.

local replication all trust

host replication all 127.0.0.1/32 trust

host replication all ::1/128 trust

host all +g1 192.168.18.0/24 md5

 

host all cuug 0.0.0.0/0 identmap=cuug

 

 

 

以上就是Part 9 - PostgreSQL实例连接访问控制 的内容,欢迎进群一起探讨交流,钉钉交流群:35,82,24,60,往期视频文档可以联系cuug咨询老师

标签:PostgreSQL,hba,用户,host,Part,pg,conf,连接
From: https://www.cnblogs.com/cnblogs5359/p/17184299.html

相关文章

  • PostgreSQL基础知识
    1.PostgreSQL日常命令#常用SQL查看当前用户:SELECTcurrent_user;查看所有用户:SELECT*FROMpg_user;查看所有数据库:SELECT*FROMpg_database;修改库的所有......
  • ruby postgresql 模糊搜索
    客户需求,通过name,email两列中的字段进行搜索过滤这项目之前用的​​pg_search​​​email的addresses是不能过滤的,例如[email protected],只能搜martin,搜163.com是搜不到的......
  • PostgreSQL Docker部署指南
    1.Dockercomposeversion:'3'services:postgresql:container_name:postgresqlimage:'rapidfort/postgresql'network: nginx_net: ipv......
  • CF1175G Yet Another Partiton Problem
    \(\text{Solution}\)有关斜率优化的强势套娃题,感觉套出了巅峰我整整写了5个小时、、、简单\(dp\)\[f_{i,j}=f_{i-1,k-1}+(j-k+1)\max_{l=k}^ja_l\]固定这个最......
  • Singleton Design Parttern
    单例模式是最常见也是最简单的设计模式,保证一个类只有一个实例并且提供一个全局访问点,主要解决实例被频繁的创建和销毁可能带来内存消耗问题。单例模式的特点:  1、私......
  • CMakeLists.txt Import third-party source code
    Mode1cmake_minimum_required(VERSION3.19)project(test_sha_aes)set(CMAKE_CXX_STANDARD14)add_executable(mainmain.cppsha/sha2.caes/aes.caes/aes_crypto......
  • PostgreSQL技术大讲堂 - Part 8:PG对象权限管理
     PostgreSQL从小白到专家,是从入门逐渐能力提升的一个系列教程,内容包括对PG基础的认知、包括安装使用、包括角色权限、包括维护管理、、等内容,希望对热爱PG、学习PG的同......
  • HBase存储空间撑爆导致拒绝服务的问题解决思路与操作方法记录
    时间:2022年3月29日;问题:tmss数据源切换完成后,源表数据将HBase集群内节点的存储空间撑爆,导致HBase集群内节点拒绝服务;修复:查询HDFS占用空间情况:hdfsdfs-df-h;确认是否......
  • Java上传二进制(multipart/form-data)_Demo
    这里做个记录,通过此次问题的解决,弄清POST同时传文件及参数时,底层到底是怎么组成,文件流及参数是怎么分隔组成,及分隔符如何写入流。好,废话不多说,直接上代码,此代码配置好自己......
  • KingbaseES V8R6 运维案例 --flashback drop table
    一、KingbaseESV8R6flashbackdroptable介绍使用FLASHBACK删除和恢复表删除表时,数据库不会立即删除与该表关联的空间。数据库重命名表,并将其和任何关联的对象放在回......