Специальные символы в паролях DB2 при подключении с Java?

#java #passwords #db2

#java #пароли #db2

Вопрос:

У меня есть простое Java-приложение, которое внезапно прекратило подключение к локальной базе данных DB2, указав в качестве причины неправильный пароль. База данных аутентифицируется с помощью учетных данных пользователя Windows. Я использовал пароль, который содержал точку с запятой и несколько круглых скобок, и когда я изменил это на что-то более простое, приложение смогло подключиться снова.

Мой вопрос: есть ли какой-либо способ, которым эти символы в пароле могли вызвать сбой входа в систему?

Исключение было: COM.ibm.db2.jdbc.DB2Exception: [IBM][CLI Driver] SQL30082N Security processing failed with reason "24" ("USERNAME AND/OR PASSWORD INVALID"). SQLSTATE=08001

И код подключения выглядит как:

 String username = "username";
String password = "pass;w(ord)";
Class.forName("COM.ibm.db2.jdbc.app.DB2Driver");
db2Connection = DriverManager.getConnection("jdbc:db2:DBNAME", username, password);
  

Ответ №1:

Если пароль DB2 содержит специальные символы, он должен быть заключен в кавычки в строке подключения.

Попробуйте изменить свою password переменную на:

 String password = ""pass;w(word)"";
  

Ответ №2:

Попробуйте подключиться к базе данных через командное окно, чтобы убедиться, что все в порядке:

 c:>db2 connect to dbname user username using pass;w(ord)
  

или в командной строке db2

 db2> connect to dbname user username using pass;w(ord)
  

Возможно, метод подключения, учетные данные или правила брандмауэра изменились,

Как только вы смогли получить доступ к базе данных, указав правильные учетные данные, теперь вы можете проверить проблему в Java.

Один шаг перед попыткой в Java — подключиться из DataStudio. Это приложение на Java, поэтому вы можете убедиться, что возможно подключиться к вашей базе данных с Java.