олицетворение Java для подключения к серверу SQL с использованием проверки подлинности Windows - PullRequest
0 голосов
/ 29 апреля 2009

сейчас у меня есть следующая архитектура, построенная с классическим ASP и Visual Basic 6

У меня есть компонент COM +, разработанный в VB6, который подключается к дабатазе. Я установил конфигурацию БД через файл .udl, настроенный со встроенной защитой.

На веб-сервере (IIS) я регистрирую компонент с помощью менеджера com + и настраиваю его для запуска под именем учетной записи, например, mydomain \ appAccount ...

в sql 2005 я даю соответствующие разрешения mydomain \ appAccount

из asp, я просто использую компонент с server.createobject ...

Я хотел бы разработать аналогичное решение с Java, вопрос (ы) заключается в следующем:

возможно ли это?

как настроить учетную запись домена для подключения к серверу sql 2005 db?

где я должен хранить db conf? и где я должен настроить учетную запись домена? в конфигурации кот / пристань?

Я бы хотел, чтобы решение было максимально простым и понятным (я стараюсь избегать таких вещей, как Glassfish или Jboss)

ну, спасибо большое ...

Ответы [ 3 ]

1 голос
/ 18 июля 2009

Что вам нужно сделать, это убедиться, что процесс JVM Tomcat выполняется пользователем с надежным подключением к базе данных.

Тогда вам нужно будет настроить источник данных в Tomcat, для ответа Бхушана .

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

1 голос
/ 04 февраля 2010

Так что это очень сложная проблема, и сейчас я сталкиваюсь с теми же проблемами. Я еще не решил олицетворение на сервере приложений, но моя команда приближается.

До сих пор мы успешно аутентифицировали пользователя на контроллере домена с помощью Kerberos. И SourceForge SPNEGO, и Spring Security Kerberos Extension очень помогли в этом отношении. Мы также смогли успешно олицетворять процесс, выполняющий приложение Java, при подключении к SQL Server. Настоящая проблема заключается в олицетворении с помощью делегирования, поскольку для этого требуется получить билет Kerberos, который можно делегировать другой службе. Это проблема, над которой мы сейчас работаем.

Если вы собираетесь выдавать себя за пользователя в SQL Server, вы должны сделать это с помощью NTLM или Kerberos. Kerberos предлагает лучшую безопасность, и, честно говоря, мы даже не удосужились попробовать использовать NTLM. Существует два драйвера JDBC (о которых я знаю), которые позволят вам подключаться к SQL Server с использованием учетной записи домена: jTDS и DataDirect JDBC. jTDS - это драйвер JDBC типа 2, что означает, что он использует собственную библиотеку для получения учетных данных пользователя. jTDS будет выдавать себя за пользователя, выполняющего процесс, и не позволит вам выдавать себя за другие учетные записи (также это может быть сделано только в Windows). Драйвер DataDirect (коммерческий) является драйвером типа 4, что означает, что он является чистой реализацией Java (и будет работать на * nix). Это драйвер, который мы используем, и он отлично работает.

Если я получу работающее решение, я опубликую его, потому что я думаю, что многие люди в сообществе страдают от этой проблемы.

Удачи!

0 голосов
/ 29 апреля 2009

Проверьте эту документацию tomcat о том, как настроить источник данных. http://tomcat.apache.org/tomcat-6.0-doc/jndi-datasource-examples-howto.html

...