Подтвердить что ты не робот

Можно ли подключиться к SQL Server с помощью проверки подлинности Windows с помощью Java EE webapp?

В настоящее время я изучаю, как сделать подключение к базе данных SQL Server из моего веб-приложения Java EE с использованием проверки подлинности Windows вместо проверки подлинности SQL Server. Я запускаю это приложение от Tomcat 6.0 и использую драйвер JDBC для Microsoft. Файл свойств моих подключений выглядит следующим образом:

dbDriver              = com.microsoft.sqlserver.jdbc.SQLServerDriver
dbUser                = user
dbPass                = password
dbServer              = localhost:1433;databaseName=testDb
dbUrl                 = jdbc:sqlserver://localhost:1433

У меня есть нулевые проблемы с подключением к базе данных SQL Server таким образом при использовании проверки подлинности SQL Server.

Можно ли получить учетные данные пользователя Windows Authentication и использовать , что для SQL Server?

ОБНОВЛЕНИЕ. Я знаю, что в ASP.net существует способ настроить аутентификацию Windows для доступа к webapp, что именно то, что я ищу, за исключением того, что я хочу передать этот токен для SQL Server для доступа к базе данных.

4b9b3361

Ответ 1

Я не думаю, что можно вывести учетные данные пользователя из браузера в базу данных (и это имеет смысл? Я думаю, что нет)

Но если вы хотите использовать учетные данные пользователя, запускающего Tomcat для подключения к SQL Server, вы можете использовать драйвер Microsoft JDBC. Просто создайте URL-адрес JDBC следующим образом:

jdbc:sqlserver://localhost;integratedSecurity=true;

И скопируйте соответствующую DLL в каталог bin Tomcat (sqljdbc_auth.dll с драйвером)

MSDN > Подключение к SQL Server с помощью драйвера JDBC > Создание URL-адреса подключения

Ответ 2

посмотрите

http://jtds.sourceforge.net/faq.html#driverImplementation

Каков формат URL, используемый jTDS?

Формат URL для jTDS:

jdbc:jtds:<server_type>://<server>[:<port>][/<database>][;<property>=<value>[;...]]

... домен Указывает домен Windows для аутентификации. Если присутствует и имя пользователя и пароль предоставляются, jTDS использует проверку подлинности Windows (NTLM) вместо обычной проверки подлинности SQL Server (т.е. Пользователь и пароль предоставляются пользователем и паролем домена). Это позволяет клиентам, не входящим в Windows, войти на серверы, которые настроены только для проверки подлинности Windows.

Если параметр домена присутствует, но не указано имя пользователя и пароль, jTDS использует свою собственную библиотеку Single-Sign-On и входит в систему с зарегистрированными учетными данными пользователя Windows (для этого нужно было, очевидно, быть в Windows, регистрируется в домене, а также имеет установленную библиотеку SSO - проконсультируйтесь с README.SSO в дистрибутиве о том, как это сделать).

Ответ 3

Это действительно работает для меня:

В README.SSO, который поставляется с дистрибутивом jtdsd:

Для того чтобы Single Sign On работал, jTDS должен иметь возможность загружать собственную библиотеку SPPI ntlmauth.dll. Поместите эту DLL в любом месте пути системы (определяется системной переменной PATH), и вы все настроены.

Я поместил его в папку jre/bin

Я настроил порт, посвященный экземпляру sql-сервера (2302), чтобы облегчить необходимость имени экземпляра - просто что-то я делаю. lportal - это имя моей базы данных.

jdbc.default.url=jdbc:jtds:sqlserver://192.168.0.147:2302/lportal;useNTLMv2=true;domain=mydomain.local

Ответ 4

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

Вместо этого используйте jtds jdbc driver. Прочтите файл README.SSO в дистрибутиве jtds о том, как настроить для однократной регистрации (встроенная проверка подлинности) и где разместить собственную DLL для обеспечения ее загрузки JVM.

Ответ 5

У меня возникла проблема с подключением к MS SQL 2005 с использованием проверки подлинности Windows. Я смог решить проблему с помощью этого и других форумов. Вот что я сделал:

  • Установите драйвер JTDS
  • Не используйте свойство "domain =" в строке jdbc: jtds:://[:] [/] [; = [;...]]
  • Установите файл ntlmauth.dll в каталог c:\windows\system32 (регистрация DLL не требуется) на машине веб-сервера.
  • Измените идентификатор входа для службы Apache Tomcat на домен пользователя с доступом к серверу базы данных SQL (пользователю не нужно было иметь доступ к dbo.master).

Моя среда: Платформа Windows XP, в которой размещается Apache Tomcat 6 с бэкэнд MS SQL 2005 в Windows 2003