ident认证方法通过从一个ident服务器获得客户端的操作系统用户名并且用它作为被允许的数据库用户名(和可选的用户名映射)来工作。它只在TCP/IP连接上支持。
当为一个本地(非TCP/IP)连接指定ident时,将实际使用peer认证(见Section20.9)。
map允许系统和数据库用户名之间的映射。详见Section20.2。“IdentificationProtocol(标识协议)”在RFC1413中描述。实际上每个类Unix操作系统都带着一个默认监听TCP113端口的ident服务器。ident服务器的基本功能是回答类似这样的问题:“哪个用户从你的端口X发起了连接并且连到了我的端口Y?”。因为当一个物理连接被建立后,PostgreSQL既知道X也知道
Y,所以它可以询问尝试连接的客户端主机上的ident服务器并且在理论上可以判断任意给定连接的操作系统用户。
这个过程的缺点是它依赖于客户端的完整性:如果客户端机器不可信或者被攻破,攻击者可能在113端口上运行任何程序并且返回他们选择的任何用户。因此这种认证方法只适用于封闭的网络,这样的网络中的每台客户端机器都处于严密的控制下并且数据库和操作系统管理员操作时可以方便地联系。换句话说,你必须信任运行ident服务器的机器。注意这样的警告:
标识协议的本意不是作为一种认证或访问控制协议。—RFC1413有些ident服务器有一个非标准的选项,它导致返回的用户名是被加密的,使用的是只有原机器管理员知道的一个密钥。当与PostgreSQL配合使用ident服务器时,一定不要使用这个选项,因为PostgreSQL没有任何方法对返回的字符串进行解密以获取实际的用户名。
CSDN-Ada助手:多亏了你这篇博客,解决了问题:/questions/7997365,请多输出高质量博客,帮助更多的人
1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。