OushuDB-客户端认证-配置方法

简介: OushuDB-客户端认证-配置方法

这一节,我们来了解一下客户端认证的配置方法和认证方式。

认证是数据库服务器对客户端用户身份鉴别的过程,并且确定客户端以该用户是否可以连接数据库服务 器。OushuDB和PostgreSQL兼容,提供多种不同的客户端认证方式,而pg_hba.conf就是客户端认证的 配置文件,它存放在数据库集群的数据目录里。HBA的意思是”host-based authentication”, 也就是基 于主机的认证。在initdb初始化数据目录的时候, 它会安装一个缺省的pg_hba.conf文件。

一、配置方法

pg_hba.conf文件的常用格式是一组记录,每行一条。空白行将被忽略,#开头的注释也被忽略。一条记 录是由若干用空格和/或制表符分隔的字段组成,记录不能跨行存在。

每条记录可以是下面七种格式之一:

  TYPE DATABASE USER ADDRESS METHOD
[auth- options]
  local
hostssl
host
hostnossl
database user
database user
database user
database user
CIDR-address
IP-address IP- mask
IP-address IP- mask
auth- [auth-options] method
auth- [auth-options] method
auth- [auth-options] method
auth- [auth-options] method
host database user CIDR-address auth- [auth-options] method
hostnossl database user CIDR-address auth- [auth-options] method
hostssl database user IP-address IP- auth- [auth-options] mask method

每条记录声明一种连接类型、一个客户端 IP 地址范围、 一个数据库名、一个用户名字、对匹配这些参 数的连接使用的认证方法。第一条匹配连接类型、 客户端地址、连接请求的数据库名和用户名的记录将 用于执行认证。这个处理过程没有 “跨越”或者”回头”的说法:如果选择了一条记录而且认证失败, 那么 将不再考虑后面的记录。如果没有匹配的记录,那么访问将被拒绝。

1.1 TYPE

表示连接类型,表示允许用哪些方式连接数据库,它允许以下几个值:

local:使用本地unix套接字。 host:使用TCP/IP连接(包括SSL和非SSL),结合“IPv4地址”使用IPv4方式,结合“IPv6地址”则使用 IPv6方式。

hostssl:只能使用SSL TCP/IP连接。 hostnossl:不能使用SSL TCP/IP连接。

1.2 DATABASE

声明记录所匹配的数据库名称。值 all表明该记录匹配所有数据库, 值sameuser表示如果被请求的数据 库和请求的用户同名,则匹配。 值samerole表示请求的用户必须是一个与数据库同名的角色中的成员。 在其它情况里,这就是一个特定的 OushuDB数据库的名字。可以通过用逗号分隔的方法声明多个数据 库, 也可以通过前缀@来声明一个包含数据库名的文件。

1.3 USER

指定哪个数据库用户或者角色,多个用户名可以通过用逗号分隔。

1.4 CIDR-ADDRESS

声明这条记录匹配的客户端机器IP地址范围,该地址用标准点分十进制声明并带有CIDR掩码长度,可以 是IPv4地址或IPv6地址,可以定义某台主机或某个网段。

例如,172.20.143.89/32表示一个主机, 172.20.143.0/24表示一个小子网,10.6.0.0/16 表示一个大子 网。

这些字段只适用于host,hostssl,hostnossl记录,local不涉及。 1.5 IP-ADDRESS IP-MASK

与 CIDR-ADDRESS一样,只是写法不同。这种写法不声明掩码的长度, 而是在另外一个字段里声明实际 的掩码。比如,255.0.0.0表示 IPv4 CIDR 掩码长度 8 , 而255.255.255.255表示 CIDR 掩码长度 32 。

这些字段同样只适用于host,hostssl,hostnossl记录,local不涉及。 1.6 METHOD

指定如何处理客户端的认证,也就是认证方式。包括包含选项有: trust、md5、password、krb5、 ident、ldap、pam等,我们将在下一节介绍一下常用的认证方式。

目录
相关文章
|
存储 监控 安全
数据库数据的保密性
【4月更文挑战第9天】数据库保密性关键在于限制未授权访问和保护数据不泄露。措施包括访问控制、加密、数据脱敏、备份恢复、审计监控及安全配置等,确保数据安全和用户隐私。
327 2
|
存储 安全 关系型数据库
后端技术深度剖析:构建高效稳定的企业级应用
【10月更文挑战第5天】后端技术深度剖析:构建高效稳定的企业级应用
269 0
|
11月前
|
人工智能 算法
AI 写歌词,会让歌词创作变得更容易吗?
在科技迅猛发展的今天,AI已渗透至多个领域,包括歌词创作。《妙笔生词智能写歌词软件》通过强大算法与海量数据,为新手提供创作指导,快速生成多风格歌词片段,降低创作门槛,节省时间。尽管如此,优秀作品仍需创作者的情感与思考,AI辅助下的歌词创作正逐渐变得更为便捷。
|
监控 安全 API
ActionTrail是什么?
【5月更文挑战第8天】ActionTrail是什么?
248 2
|
11月前
|
存储 前端开发 搜索推荐
ClkLog基于ClickHouse 的百万日活实测报告
自 ClkLog 上线以来,我们不断吸纳用户需求,提升产品的支持能力。今年下半年,我们遇到了日活跃用户数达到百万级别的客户。为了给 ClkLog 用户提供可靠的技术建议和解决方案,同时也为了节省成本,在Clickhouse官方支持下,我们在阿里云上对 ClickHouse 社区版、企业版进行了详细测试和成本分析。
|
Unix iOS开发 Ruby
解决CocoaPods installed but it is not working
解决CocoaPods installed but it is not working
635 5
|
Linux C# C++
【.NET Developer】创建ASP.NET Core Blazor项目并打包为Linux镜像发布到Azure应用服务
本文介绍了如何使用VS2019和.NET框架创建一个Blazor应用,并将其部署到Azure应用服务。首先,Blazor是一个使用C#而非JavaScript构建交互式Web UI的框架,支持共享服务器和客户端应用逻辑,以及与Docker和Azure集成。任务包括创建Blazor项目,配置Dockerfile为Linux容器,本地测试,发布到Azure Container Registry (ACR),然后在Azure App Service for Container上部署。在部署过程中,需确保Docker设置正确,开启ACR的Admin访问权限,并监控镜像拉取和容器启动日志。
599 0
|
存储 监控 Java
Go Goroutine 究竟可以开多少?(详细介绍)
Go Goroutine 究竟可以开多少?(详细介绍)
222 3
|
移动开发 监控 API
WebSocket API 详解与应用指南
WebSocket API 是HTML5的一种技术,它允许服务器与客户端建立持久的全双工连接,改变传统HTTP请求-响应模式,实现双向通信。API包括WebSocket构造函数、连接状态属性(如readyState)、方法(如send和close)及事件(如onopen和onmessage)。它简化了实时Web应用程序的开发,适用于在线聊天、实时数据监控等场景。
616 5
|
JavaScript 前端开发 关系型数据库
Yum报错“undefined symbol: CRYPTO_num_locks”问题排查
Yum无法使用,报错 “/usr/lib64/python2.7/site-packages/pycurl.so: undefined symbol: CRYPTO_num_locks”。
13145 0