本文将详细说明如何在PostgreSQL数据库中实现客户端验证。边肖觉得挺实用的,就分享给大家参考。希望你看完这篇文章能有所收获。
身份验证是数据库服务器建立客户端身份,并确定是否允许客户端应用程序(或运行客户端应用程序的用户)通过扩展与请求的数据库用户名连接的过程。
可以根据(客户端)主机地址、数据库和用户来选择验证特定客户端连接的方法。
-1.pg_hba.conf文件:
客户端身份验证由pg_hba.conf配置文件控制。存储在数据库的数据目录中。
记录模式:
连接类型数据库名称用户名客户端IP地址范围匹配这些参数的连接的身份验证方法连接类型:
Local:匹配使用Unix域套接字的连接尝试。
主机:匹配使用TCP/IP的连接尝试,主机记录匹配SSL或非SSL连接尝试。
主机:匹配使用TCP/IP的连接尝试,仅当使用ssl加密连接时。
Hostnossl:仅匹配通过TCP/IP进行的连接尝试,而不匹配ssl。database:记录匹配的数据库名称。all指定匹配所有数据库。您可以通过用逗号分隔来提供多个数据库名称。
User:匹配数据库用户名。提供多个用户名,用逗号分隔。
地址:匹配客户端计算机地址。它可以包括主机名或IP地址范围。0.0.0.0/0表示所有IPv4地址,33600/0表示所有IPv6地址。方法:
记录匹配时使用的身份验证方法。
Trust:允许无条件连接。允许所有没有密码和其他身份验证的连接。
Reject:无条件拒绝连接。
急停-急停-sha-256:执行急停-sha-256认证,以验证用户的密码。
MD5:执行SCRAM-SHA-256或MD5身份验证,以验证用户的密码。
Password:要求客户端提供未加密的密码进行身份验证。网络明文传输不安全。
Gss:使用GSSAPI对用户进行认证。这仅适用于TCP/IP连接。
Ident:和客户端的Ident服务器获取客户端主机的用户名。并检查它是否与请求的数据库用户名匹配。身份验证只能用于TCP/IP连接。
Peer:从操作系统获取主机名,仅适用于本地连接。
nbsp; cert : 使用SSL客户端证书进行身份验证。
pam : 使用操作系统提供的可插入身份验证模块(PAM)服务进行身份验证。
- 2. ident用户名: 配置文件:pg_ident.conf
记录格式: MAPNAME SYSTEM-USERNAME PG-USERNAME 用户名映射在ident映射文件中定义.
- 3. 认证方法:
信任认证: 在与服务器的连接上有足够的操作系统级保护时,才应使用. trust如果使用文件系统权限限制对服务器的Unix域套接字文件的访问,则可以在多用户计算机上使用. 密码认证: scram-sha-256身份认证: 防止密码嗅探不受信任的连接,并支持以加密的哈希形式在服务器上存储密码. md5: 防止密码嗅探并避免以明文形式在服务器上存储密码. 优选选择基于SCRAM的身份验证。 password 明文形式发送密码,连接受SSL加密保护才可使用。 每个数据库用户的密码都存储在pg_authid系统目录中
- 4. GSSAPI身份验证:
GSSAPI提供了一种用于支持它的系统自动认证(单点登录)。身份验证本身是安全的.除非使用SSL。 构建PostgreSQL时必须启用GSSAPI支持。 身份验证: ident身份验证方法的工作原理是从身份服务器获取客户端的操作系统用户名, 并将其用作允许的数据库用户名,在TCP / IP连接上受支持. 对等身份验证: 对等身份验证方法的工作原理是从内核获取客户端的操作系统用户名, 并将其用作允许的数据库用户名.仅在本地连接时支持。 证书认证: 使用SSL客户端证书执行身份验证. 仅适用于SSL连接. 使用此身份验证方法时,服务器将要求客户端提供有效的可信证书。没有密码提示将被发送到客户端。 cn证书的(公共名称)属性将与请求的数据库用户名进行比较,如果匹配,则允许登录.
关于“PostgreSQL数据库如何实现客户端验证”这篇文章就分享到这里了,希望
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/116457.html