如果需要另一个 krbsrvname,是否需要重新编译?

Recompile neccessary if another krbsrvname is needed?

根据https://www.postgresql.org/docs/current/gssapi-auth.html

When GSSAPI uses Kerberos, it uses a standard principal in the format servicename/hostname@realm

care needs to be taken to specify the correct principal details when making the connection from the client using the krbsrvname connection parameter. (See also Section 33.1.2.) The installation default can be changed from the default postgres at build time using ./configure --with-krb-srvnam=whatever.

但是如果我查看 Github 上的 Postgres 源代码,

  1. 设置似乎作为 PG_KRB_SRVNAM
  2. 传播到 C 程序代码中
  3. 它唯一被使用的地方似乎是在 https://github.com/postgres/postgres/blob/master/src/interfaces/libpq/fe-connect.c
  4. 的 libpq 库中

这是否意味着如果我需要使用另一个 krbsrvname,则不需要重新编译服务器?

需要重新编译的是客户端,而不是服务器。 (虽然通常你可能会一起重新编译)。或者你可以用正确的值覆盖默认值,而不重新编译任何东西。