Я следую за этим вопросом ( Как использовать mod_authn_dbd с SQL Server (ODBC) ) для настройки Apache 2.4 (в Debian 9 последней версии) для аутентификации моего пользователя в MS-SQLБаза данных.
Моя цель - защитить сервер OCSInventory. В z-ocsinventory-server.conf я добавляю:
DBDriver odbc
DBDParams "DATASOURCE=ODBCSRV,USER=ocs,PASSWORD=ocspwd"
DBDMin 4
DBDKeep 8
DBDMax 20
DBDExptime 300
В разделе "Местоположение / ocsinventory"
AuthType Basic
AuthName "OCS Inventory agent area"
# AuthBasicProvider socache dbd
AuthBasicProvider dbd
# AuthnCacheProvideFor dbd
# AuthnCacheContext my-server
AuthDBDUserPWQuery "SELECT Password as password FROM OCS WHERE login=%s"
# AuthBasicProvider file
# AuthUserFile "/etc/apache2/htpasswd.users"
require valid-user
В файле odbc.ini
[ODBCSRV]
Driver = ODBC Driver 17 for SQL Server
Server = ipserver
Попытка доступа к базе данных с помощью isql прекрасно работает. Выполните запрос также.
Пароль возврата из запроса в AuthDBDUserPWQuery имеет префикс {SHA}, но он не работает. В журнале Apache появляется «Несоответствие пароля».
Работает тот же пользователь / пароль в файле htpasswd. Поэтому я думаю, что проблема заключается в конфигурации ODBC. Некоторые корректировки в операторе SQL возвращают «нормальную» ошибку. Для примера: вызвать несуществующего пользователя, журнал apache показывает «пользователь не найден». - укажите несуществующий столбец, в журнале apache ошибка «столбец не найден».
Я также пытаюсь урезать () пароль, но безрезультатно.
Любое предложение может быть оцененопомогите мне решить эту проблему.