Windows 上多个用户的 Kerberos 票证缓存位置

Windows 上多个用户的 Kerberos 票证缓存位置

我正在使用多个 odbc 驱动程序连接到 hive 和 impala,并且大多数文档都指出 kerberos 票证位置应由环境变量 KRB5CCNAME 定义,例如 C:\temp\kr5ccache

此设置工作正常,但我想为多个用户提供使用不同凭据连接 ODBC 的可能性,因此票证缓存位置不能是静态的,而应该是用户特定的。所以我的问题是如何在 Windows Server 2012 中设置一个环境变量,该变量对于每个用户都是不同的。类似于 unix ~/.tmp/krb5ccache。

谢谢

答案1

Unix/Linux shell/bash 中作为参数第一个字符出现的波浪~号与环境变量相同$HOMEWindows 等效于%USERPROFILE%

您可以使用以字符串开头的任何用户变量。在打开的cmd窗口中尝试您自己的变量:set | find /I "%USERNAME%"输出如下所示

APPDATA=C:\Users\{username}\AppData\Roaming
LOCALAPPDATA=C:\Users\{username}\AppData\Local
PSModulePath=C:\Users\{username}\Documents\WindowsPowerShell\Modules
USERPROFILE=C:\Users\{username}

因此,您可以使用类似以下代码片段

set "KRB5CCNAME=%USERPROFILE%\kr5ccache"
rem ensure that above directory exists:
2>NUL md "%KRB5CCNAME%"

相关内容