Чувствителен ли пароль к регистру при передаче OCIAttrSet с OCI_ATTR_PASSWORD?
Вопрос
Во фрагменте программы OCI (C++) я использую OCIAttrSet
с OCI_ATTR_PASSWORD
флаг, чтобы передать (или установить) пароль для инициализации сеанса следующим образом:
success = OCIAttrSet (
ses,
OCI_HTYPE_SESSION,
(text *) password.c_str(),
password.length(),
OCI_ATTR_PASSWORD,
err
);
Последующие
success = OCISessionBegin (
svc,
err,
ses,
OCI_CRED_RDBMS,
OCI_DEFAULT
);
работает нормально, если пароль указан маленькими буквами.Если хотя бы один символ password
находится в верхнем регистре, OCISessionBegin
вернуть ошибку ORA-01017: invalid username/password; logon denied
.
Такое поведение отличается от любой обработки паролей, которую я видел в Oracle, поскольку до сих пор я считал, что они нечувствительны к регистру.Тем не менее, я не нашел где-то документированного такого поведения.Итак, это ожидаемое поведение (и я не могу найти документацию) или происходит что-то еще?
Решение
Пароли пользователей Oracle были нечувствителен к регистру, до версии 11g — теперь вам нужно правильно указать регистр.