信任认证 trust 这个方法允许任何可以与OushuDB 数据库服务器连接的用户以他们期望的任意OushuDB 数据库用户身 份进行连接,而不需要口令或任何其他认证。 trust认证对于单用户工作站的本地连接是非常合适和方便的,它只适合 TCP/IP 连接,只有在你信任那 些trust 行上所有机器中的所有用户的时候才适合,一般很少使用trust作为任何除来自localhost (127.0.0.1) 以外的 TCP/IP 连接的认证方式,建议不要在生产环境中使用。 ident认证 ident 认证方法是通过从一个ident服务器获取客户端的操作系统用户名,然后列出允许的相对应名称的 映射文件确定允许的数据库用户名。这个用户映射文件为pg_ident.conf,记录着与操作系统用户匹配的 数据库用户,如果某操作系统用户在本文件中没有映射用户,则默认的映射数据库用户与操作系统用户 同名。比如,服务器上有名为user1的操作系统用户,同时数据库上也有同名的数据库用户,user1登录 操作系统后可以直接输入psql,以user1数据库用户身份登录数据库且不需密码。
口令认证 以口令为基础的认证方法包括md5,crypt和password。这些方法操作上非常类似, 只不过口令通过连接 传送的方法不同:分别是MD5 哈希、crypt加密、明文。有一个限制是crypt方法不适用于pg_authid已 经加密的口令。 如果你担心口令的安全问题,那么md5比较合适。 在开放网络中应该尽可能避免使用password,因为 password是以明文形式在网络上传递的, 所以我们不建议在不信任的网络中使用。 OushuDB 数据库口令存储在pg_authid系统表里面,可以用 SQL 语言命令CREATE USER和ALTER ROLE 等管理(比如CREATE USER foo WITH PASSWORD ‘secret’)。如果没有明确设置口令,那么存储的口令是 空并且该用户的口令认证总会失败。 LDAP 认证 这个认证方法操作起来类似password,只不过它使用 LDAP 作为密码验证机制。 LDAP 只用于验证用户 名/口令对。因此,在使用 LDAP 进行认证之前,用户必须已经存在于数据库里。使用的服务器和参数在 文件pg_hba.conf中的ldap关键字之后指定。 这个参数的格式是: PAM 认证 除了使用PAM(可插入认证模块)作为认证机制之外,此认证方法与密码类似。 默认的PAM服务名称是 postgresql。 您可以选择在pg_hba.conf文件中的pam关键字之后提供您自己的服务名称。 PAM仅用于 验证用户名/密码对。 因此,在PAM可以用于认证之前,用户必须已经存在于数据库中。 有关PAM的更 多信息,请查阅Linux-PAM页面和Solaris PAM页面。 Kerberos认证 Kerberos是一种适用于在公共网络上进行分布计算的工业标准的安全认证系统,它是一种相当复杂也相 当强大的安全认证系统。 Kerberos 只提供安全认证,但并不加密在网络上传输的查询和数据,SSL可以 用于这个目的。OushuDB 支持 Kerberos 5 ,Kerberos 支持必须在编译的时候打开。感兴趣的朋友可 以学习Kerberos FAQ或MIT Kerberos page 。