2012-06-26 4 views
1

Я установил MS SQL Server 2008, и я хочу использовать его в проекте Java со Struts. К сожалению, я не могу настроить его на Java. Я использую проверку подлинности Windows для MsSql. Это возможно?ms sql configuration in beans.xml

Мой файл beans.xml выглядит следующим образом:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE beans PUBLIC "-//SPRING//DTD BEAN//EN" 
    "http://www.springframework.org/dtd/spring-beans.dtd"> 

<beans> 

    <bean id="dataSource" class="org.springframework.jdbc.datasource.DriverManagerDataSource"> 
     <property name="driverClassName" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /> 
     <!-- S2-Install-Start: INSERT DB SERVER HERE --> 
     <property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase" /> 
     S2-Install-End: 
     <property name="username" value="Stefana\Steffi" /> 
     S2-Install-Start: INSERT DB PASSWORD HERE 
     <property name="password" value="" /> 
     S2-Install-End: 
    </bean> 

Я не знаю, что я должен написать в пользователя и пароля? Когда я подключаюсь к серверу Ms Sql, я получаю следующее:

Servertype: DatabaseEngine 

Servername: Stefana\SQLEXPRESS 

Authentication: Windows Authentication 

Username:Stefana\Steffi 

Password: 

ответ

0

Это нехорошо.

У вас есть эта база данных? Ваша конфигурация говорит «localhost», поэтому я буду считать «да». Вы должны использовать другое имя пользователя и пароль для своего приложения с SQL Server, а не проверку подлинности Windows. Я бы создал отдельного пользователя только для этого приложения. Предоставьте ему доступ только к схеме приложения и предоставите минимальные разрешения, необходимые для выполнения своей миссии (например, без разрешения DELETE, если это не требуется, нет доступа к таблицам SYSTEM, если это не требуется, без запуска хранимых процедур, если это не требуется).

Лучшим решением является использование источника данных JNDI и отсутствие паролей в текстовом виде на вашем компьютере.

+0

Да, база данных находится на моем localmachine .. Я читал о имени пользователя по умолчанию «sa», но знаю, что знает пароль, есть ли пароль по умолчанию? – Steffi

+0

Я создал нового пользователя: stefi, с паролем: stefi12345 .. но все равно не работает – Steffi

+0

Это имя пользователя не выглядит правильным; Я не вижу этот пароль нигде. Конфигурация Spring неверна. Я знаю, что это работает; Я использую это каждый день. – duffymo

1

Вы можете использовать проверку подлинности Windows, если используете jTDS JDBC Driver для SQL Server. Драйвер jTDS является бесплатным, с открытым исходным кодом и, как правило, более мощным, чем официальный Microsoft.

Если вы включите банку jTDS в проекте, я считаю, что это DataSource URL должен работать:

jdbc:jtds://localhost:1433/MyDatabase;domain=Stefana 

Поскольку вы работаете на Windows, драйвер jTDS способен использовать исходную библиотеку для автоматического входа с вашими текущими учетными данными. Однако обычно лучше указать явно имя пользователя и пароль, потому что таким образом ваше веб-приложение не будет вести себя по-разному в зависимости от того, кто его запускает.

Обратите внимание, что SQL Server 2008, вероятно, не будет включать TCP-соединения по умолчанию. Если вы не включите это, вы не сможете соединиться ни с драйвером Microsoft, ни с jTDS.

Чтобы включить TCP-соединения:

  • Открыть Sql Server Configuration Manager (он должен быть в меню Пуск)
  • В дереве слева выберите SQL Конфигурация сервера сети затем Протоколы для MSSQLSERVER
  • Вы должны увидеть TCP/IP in th e список протоколов.
  • Если его статус Disabled затем дважды щелкните по нему, и измените параметр Enabled в Да и нажмите OK
  • Теперь необходимо перезапустить SQL Server.Перейдите к Услугам SQL Server элемент
  • правой кнопкой мыши на SQL Server (MSSQLSERVER) в списке услуг
  • Выберите Restart
  • Теперь вы должны иметь возможность подключиться к SQL Server с вашего Java веб-приложение
0

заменить свойство:

<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase" /> 

для:

<property name="url" value="jdbc:sqlserver://localhost:1433;DatabaseName=MyDatabase;" /> 

Done !!!