Hiveとimpalaに接続する複数のodbcドライバーを使用していますが、ほとんどのドキュメントには、Kerberosチケットの場所はC:\ temp\kr5ccacheなどの環境変数KRB5CCNAMEで定義する必要があると記載されています。
この設定は正常に機能しますが、複数のユーザーがODBCを異なる資格情報で接続できるようにしたいので、チケットキャッシュの場所を静的にすることはできず、ユーザー固有にする必要があります。私の質問は、Windows Server 2012でユーザーごとに異なる環境変数を設定する方法です。unix〜/.tmp/krb5ccacheのようなものです。
ありがとう
Unix/Linux Shell/bashで引数の最初の文字として出現する~
チルダは、$HOME
環境変数と同じです。 Windowsに相当するものは%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%"