Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Здравствуйте всем! Обстановка: WAS 6.0 и DB2 8.2 (14 fixpack) установлены на машине с ОС Linux. Настроил на сервере источник данных. Инсталлировал прогу из ear-файла. В разделе "Security > Global security > J2EE Connector Architecture (J2C) authentication data entries" заведен пользователь, под которым приложение коннектится к базе. В результате приложение запускается, но при первом же соединении с базой возникает исключение: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. Подскажите, что забыл настроить? Спасибо С уважением, Семен Попов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 15:27 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Понятно, что не проходит авторизация пользователя в системе DB2. Действительно, открываю центр управления DB2 и не могу подконнектиться с заданным пользователем. Хотя в пользователях базы данных он прописан. Чтобы прописать пользователя для базы, сначала добавили его в операционной системе (Linux), а затем скриптом "grant connect on database to user "GUEST"" я прописал его в пользователи БД. Может что неправильно сделали? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.07.2007, 17:03 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
С соединением через центр управления DB2 разобрались. Теперь с помощью клиента администрирования я могу подконнектиться к удаленной базе с пользователем guest. Но приложение выдает то же исключение. В моем приложении все соединения с базой выполняются под одним пользователем guest. Логин и пароль этого пользователя зашит в application.properties. Если в этом файле я изменю логин и пароль на db2admin, то все работает нормально. Но это нельзя. Поэтому я создал другого пользователя guest, которому дал необходимые привелегии. Но под ним прога не хочет коннектиться к базе. Так что же я мог недонастроить, либо в DB2, либо в WebSphere? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 11:38 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Общий порядок по пунктам (для WAS 6.x): 1. В приложении нужно задать ссылку на внешний ресурс (<resource-ref>) типа javax.sql.DataSource. 2. На сервере приложений нужно создать пул соединений с СУБД (это вроде сделано) 3. На сервере приложений нужно завести алиас J2C Authentication Data, где прописать логин и пароль пользователя. (тоже вроде сделано) 4. На сервере приложений во время установки/конфигурирования нужно выполнить привязку (маппинг) ссылки на ресурс (п.1) с реальным пулом(п.2) и указать алиас авторизации (п.3) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 12:19 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Евгений ХабаровОбщий порядок по пунктам (для WAS 6.x): Спасибо за отзыв. Я решил проблему. В силу определнных обстоятельств, связанных с настройками клиента администрирования DB2 и ОС Linux на сервере, у меня возникала эта ошибка. Но не могу понять почему всегда требуется сделать пункты 2-3 из Вашего сообщения (многие советуют), когда это же приложение было развернуто на моей машине (на стадии разработки), и на сервере не было создано ни пула, ни алиаса. Сейчас тоже, для проверки, я удалил созданный мной алиас J2C Authentication Data, а приложение все равно работает. Не влияет ли здесь на это опция "Enable Global Security", которая у меня отключена? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 12:53 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Как идет обращение к СУБД из приложения? Пул соединений в приложении вообще используется? Настоятельно рекомендуется соединения с СУБД производить через пул. В этом случае пулом соединений будет управлять сервер приложений, а самому приложению будет достаточно получить соединение из пула, выполнить одну или несколько транзакций и вернуть соединение в пул. Такой вариант работы расчитан на то, что приложения забирают соединения из пула на короткие интервалы времени. Ну и еще плюс, что приложение знает только объявленное в приложении имя ресурса. А имя пользователя, пароль и ссылку на реальный сервер приложений настраивает администратор сервера приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 13:16 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Евгений ХабаровКак идет обращение к СУБД из приложения? Пул соединений в приложении вообще используется? А без него тоже можно? Вроде используется. В Application Deployment Descriptor добавил JDBC-провайдер - DB2 Universal JDBC Driver Provider, а в нем определил необходимый источник данных. Евгений ХабаровНастоятельно рекомендуется соединения с СУБД производить через пул. В этом случае пулом соединений будет управлять сервер приложений, а самому приложению будет достаточно получить соединение из пула, выполнить одну или несколько транзакций и вернуть соединение в пул. Такой вариант работы расчитан на то, что приложения забирают соединения из пула на короткие интервалы времени. Ну и еще плюс, что приложение знает только объявленное в приложении имя ресурса. А имя пользователя, пароль и ссылку на реальный сервер приложений настраивает администратор сервера приложений. Спасибо. Вот администратор-то сервера приложений у нас и не хочет заводить и настраивать пользователей. Поэтому пошли по другому пути. Разграничение доступа происходит на уровне приложения. Есть отдельная таблица в базе, которая хранит пользователей и их привилегии. С пользователями и их доступом уже работает так называемый админитратор приложения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 14:31 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Semen Popov Евгений ХабаровКак идет обращение к СУБД из приложения? Пул соединений в приложении вообще используется? А без него тоже можно? Вроде используется. В Application Deployment Descriptor добавил JDBC-провайдер - DB2 Universal JDBC Driver Provider, а в нем определил необходимый источник данных. Можно многое :) В том числе и DriverManager вызывать, но так делать не нужно. Если все делать в приложении, зачем тогда нужен Application Server? Если обращаетесь к пулу через JNDI Lookup, значит пулом пользуетесь. Semen Popov Евгений ХабаровНастоятельно рекомендуется соединения с СУБД производить через пул. В этом случае пулом соединений будет управлять сервер приложений, а самому приложению будет достаточно получить соединение из пула, выполнить одну или несколько транзакций и вернуть соединение в пул. Такой вариант работы расчитан на то, что приложения забирают соединения из пула на короткие интервалы времени. Ну и еще плюс, что приложение знает только объявленное в приложении имя ресурса. А имя пользователя, пароль и ссылку на реальный сервер приложений настраивает администратор сервера приложений. Спасибо. Вот администратор-то сервера приложений у нас и не хочет заводить и настраивать пользователей. Поэтому пошли по другому пути. Разграничение доступа происходит на уровне приложения. Есть отдельная таблица в базе, которая хранит пользователей и их привилегии. С пользователями и их доступом уже работает так называемый админитратор приложения. Вообще для аутентификации/авторизации тоже рекомендуется пользоваться средствами сервера приложений. В таком случае реестр пользователей ведется отдельно (для WAS 6.0 это или Local OS или LDAP или Custom), а в приложении декларативно или программно права распределяются в соответствии с ролями. Вообще-то это одна из основ J2EE. Но при этом к СУБД все приложение обычно обращается от одного имени пользователя, которое прописано в алиасе J2C Authentication Data. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 14:54 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Евгений ХабаровЕсли обращаетесь к пулу через JNDI Lookup, значит пулом пользуетесь. Как я уже говорил, провайдер и источник данных я настраиваю в Application Deployment Descriptor через рукоятки, которые предлагает среда разработки. Хотя, если посмотреть исходный код application.xml, то там ничего про это не увидеть: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. Код: plaintext 1. 2. 3. 4. 5. 6. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. Евгений ХабаровВообще для аутентификации/авторизации тоже рекомендуется пользоваться средствами сервера приложений. Да, я слышал, что так правильно. Но на момент разработки я знал только нынешний подход. Я думаю, в скором времени изменю принцип аутентификации/авторизации. Единственное требование от администратора сервера - не заставлять его заниматься пользователями. И я видел приложение, которое прямо из него позволяет заводить пользователей как на сервере Linux, как на сервере WAS, так и DB2. Все делается из программы. Попробую разобраться, как это сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 16:19 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Код: plaintext 1. Код: plaintext По поводу аутентификации/авторизации. Тут логика такая, что сервер приложений не ведет базу пользователей, он ее использует. Реестр пользователей с точки зрения сервера приложений это отдельный продукт и отдельная система, у которого есть свой администратор(ы). Если используются полноценные продукты ведения реестра пользователей (напр. IBM Tivoli Access Manager), у них есть свои готовые интерфейсы для управления пользователями. Если используется реестр пользователей ОС, то и база пользователей ведется средствами ОС. Максимум что требуется от администратора сервера приложений - это выполнить маппинг ролей на пользователей и/или группы реестра. Кстати, тот же ITAM, насколько я помню, позволяет и роли хранить в рееестре, но чтобы это работало в WAS интегрируется модуль от ITAM. Кроме того, под J2EE некоторые фреймворки сами умеют вести реестр пользователей, не полагаясь на сервер приложений. Но, тогда получается что не используется часть функций защиты сервера приложений. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 17:20 |
|
||
|
"SQLException: User ID or password invalid" при доступе к базе в приложении под WAS 6.0
|
|||
|---|---|---|---|
|
#18+
Спасибо за подробные ответы. Евгений ХабаровКроме того, под J2EE некоторые фреймворки сами умеют вести реестр пользователей, не полагаясь на сервер приложений. Но, тогда получается что не используется часть функций защиты сервера приложений. В моем случае так и есть. Защиты не существует на уровне самого app-сервера. Но, есть у нас отдел такой - защиты информации называется. Он и открывает/закрывает доступ к серверу от конкретных рабочих станций. У них стоит маршрутизатор перед нашими серверами, который сканирует все запросы, а затем запрещает или разрешает клиенту доступ на тот или иной сервер. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2007, 18:06 |
|
||
|
|

start [/forum/topic.php?fid=43&msg=34664948&tid=1604437]: |
0ms |
get settings: |
11ms |
get forum list: |
20ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
74ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
68ms |
get tp. blocked users: |
2ms |
| others: | 265ms |
| total: | 463ms |

| 0 / 0 |
