Я использую несколько драйверов odbc, подключающихся к hive и impala, и в большей части документации указано, что местоположение билета Kerberos должно определяться переменной окружения KRB5CCNAME, например C: \ temp \ kr5ccache
Эта настройка работает нормально, но я хотел бы предоставить нескольким пользователям возможность подключать ODBC с разными учетными данными, поэтому расположение кеша билетов не может быть статическим, а должно зависеть от пользователя. Итак, мой вопрос в том, как настроить переменную env в Windows Server 2012, которая будет отличаться для каждого пользователя. Что-то вроде unix ~ / .tmp / krb5ccache.
Спасибо
А ~
тильда, встречающаяся в качестве первого символа аргумента в оболочке Unix / Linux / 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%"