web-dev-qa-db-ja.com

複数のユーザーのWindows上のKerberosチケットキャッシュの場所

Hiveとimpalaに接続する複数のodbcドライバーを使用していますが、ほとんどのドキュメントには、Kerberosチケットの場所はC:\ temp\kr5ccacheなどの環境変数KRB5CCNAMEで定義する必要があると記載されています。

この設定は正常に機能しますが、複数のユーザーがODBCを異なる資格情報で接続できるようにしたいので、チケットキャッシュの場所を静的にすることはできず、ユーザー固有にする必要があります。私の質問は、Windows Server 2012でユーザーごとに異なる環境変数を設定する方法です。unix〜/.tmp/krb5ccacheのようなものです。

ありがとう

1
frengel

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%"
1
JosefZ