如果尝试启用或使用 Kerberos 验证时出现意外错误,建议在数据库服务器和客户端上均启用附加诊断消息。
如果运行中的服务器在数据库服务器消息日志中包含附加诊断消息,则需要在启动数据库服务器时指定 -z 选项,或者使用 CALL sa_server_option( 'DebuggingInformation', 'ON' )。LogFile 连接参数可使客户端诊断信息写入指定的文件。
您可以使用 -z 参数代替 LogFile 连接参数来运行 Ping 实用程序 (dbping)。-z 参数显示的诊断消息可帮助您判断出现连接问题的原因。
症状常用解决办法“无法装载 Kerberos GSS-API 库”消息确保数据库服务器计算机上已经安装 Kerberos 客户端,包括 GSS-API 库。数据库服务器 -z 输出显示正在尝试装载的库名。验证库名是否正确。如有必要,可使用 -kl 选项指定正确的库名。确保目录和所有支持库都列在库路径(在 Windows 上为 %PATH%)中。如果数据库服务器 -z 输出显示 GSS-API 库缺少入口点,则该库不是受支持的第 5 版本 Kerberos GSS-API 库。“无法获取服务器名称“
如果客户端在尝试使用 Kerberos 验证进行连接时出现错误:
症状常用解决办法“不支持 Kerberos 登录”错误,并且 LogFile 内包含消息“未能装载 Kerberos GSS-API 库”确保客户端计算机上已安装了 Kerberos 客户端,包括 GSS-API 库。LogFile 所指定的文件列出尝试装载的库的名称。检查库名是否正确,如有必要可使用 Kerberos 连接参数指定正确的库名。确保库路径(在 Windows 上为 %PATH%)中包含所有支持库的目录。如果 LogFile 输出显示 GSS-API 库缺少入口点,则该库不是受支持的第 5 版本 Kerberos GSS-API 库。[不支持 Kerberos 登录] 错误确保数据库服务器已经通过指定一个或多个 -krb、-kl 或 -kr 服务器选项启用了 Kerberos 登录。确保客户端和服务器平台上均支持 Kerberos 登录。“Kerberos 登录失败”错误确保用户已经登录到 Kerberos 且拥有尚未过期的有效票据授予票据。确保将客户端计算机和服务器计算机的时间同步到相差不到 5 分钟。“login_mode 设置不容许登录模式 'Kerberos'”错误login_mode 选项的公共或临时公共数据库选项设置中必须包含值 Kerberos 以允许 Kerberos 登录。“登录 ID 'GRANT KERBEROS LOGIN 语句将 Kerberos 主体映射到一个数据库用户 ID。注意,必须将包括域在内的完整客户端主体提供给 GRANT KERBEROS LOGIN 语句,只在实例或域内有差异的主体将被区分对待。或者,如果希望所有尚未明确映射的有效 Kerberos 主体能建立连接,可使用 GRANT CONNECT 创建一个带口令的 Guest 数据库用户 ID。