1

MS SQL Server 2008 をインストールしましたが、これを Struts を使用する Java プロジェクトで使用したいと考えています。残念ながら、Java で設定することはできません。Msql に Windows 認証を使用しています。それは可能ですか?

私の 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>

ユーザー欄とパスワード欄に何を書けばいいのかわからない Msql サーバーに接続すると、次のようになります。

Servertype: DatabaseEngine

Servername: Stefana\SQLEXPRESS

Authentication: Windows Authentication

Username:Stefana\Steffi

Password:
4

3 に答える 3

1

jTDS JDBC Driver for SQL Serverを使用する場合は、Windows 認証を使用できます。jTDS ドライバーは無料のオープン ソースであり、一般的に公式の Microsoft ドライバーよりも強力です。

プロジェクトに jTDS jar を含める場合、次のデータソース URL が機能するはずです。

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

Windows で実行しているため、jTDS ドライバーはネイティブ ライブラリを使用して、現在の資格情報で自動的にログインできます。ただし、通常は、ユーザー名とパスワードを明示的に指定することをお勧めします。これにより、誰が起動したかによって Web アプリの動作が異なることがなくなります。

また、SQL Server 2008 では、デフォルトで TCP 接続が有効になっていない可能性があることにも注意してください。これをオンにしない限り、Microsoft ドライバーまたは jTDS ドライバーのいずれにも接続できません。

TCP 接続を有効にするには:

  • Sql Server Configuration Managerを開きます ([スタート] メニューにあるはずです)。
  • 左側のツリーで、[ SQL Server ネットワーク構成]、 [ MSSQLSERVER のプロトコル] の順に移動します。
  • プロトコルのリストにTCP/IPが表示されます。
  • ステータスが[無効] になっている場合はダブルクリックし、[有効] オプションを[はい] に変更して [ OK ] をクリックします。
  • ここで、SQL Server を再起動する必要があります。SQL Server サービス項目に移動します
  • サービスのリストでSQL Server (MSSQLSERVER)を右クリックします。
  • 再起動を選択
  • Java Web アプリから SQL Server に接続できるようになりました。
于 2012-06-27T04:09:20.613 に答える
0

プロパティを置き換えます。

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

為に:

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

終わり!!!

于 2015-04-29T14:07:07.883 に答える
0

これは正しいことではありません。

そのデータベースを所有していますか? あなたの設定には「localhost」と書かれているので、そうであると仮定します。Windows 認証ではなく、SQL Server からアプリケーションに別のユーザー名とパスワードを使用する必要があります。このアプリケーション専用の別のユーザーを作成します。アプリケーション スキーマへのアクセスのみを許可し、その使命を達成するために必要な最小限のアクセス許可を付与します (たとえば、不要な場合は DELETE パーミッションなし、不要な場合は SYSTEM テーブルへのアクセスなし、不要な場合はストアド プロシージャの実行なし)。

より良い解決策は、JNDI データ ソースを使用し、マシンにプレーン テキストのパスワードを持たないようにすることです。

于 2012-06-26T11:53:38.490 に答える