1

SQLServerのデータベースからデータを取得できません。

私はプールとしてc3p0を使用します、これはc3p0.propertiesです:

c3p0.user=test
c3p0.password=123456
c3p0.jdbcUrl=jdbc:sqlserver://xxxxxx:1433;databaseName=TIMDB;SelectMethod=cursor
c3p0.driverClass=com.microsoft.sqlserver.jdbc.SQLServerDriver
c3p0.maxPoolSize=15
c3p0.testConnectionOnCheckin=true
c3p0.idleConnectionTestPeriod=3600

SQLサーバーで、testという名前の新しいユーザーを作成しました。デフォルトのデータベースはTIMDBで、サーバーの役割はパブリックです。これはユーザーマッピングです。 ここに画像の説明を入力してください

しかし、アプリケーションを起動すると、何も取得できません。

log4jによって作成されたログから、データの取得に使用されるSQLを取得できますが、SQLをSQL Management Stutioにコピーして新しいクエリを作成すると、一部のデータを取得できます。

なんでだろう?

4

1 に答える 1

2

私には許可の問題のように見えます。生成された SQl を管理スタジオで (つまり、ユーザー アカウントで) 使用したときに実行される場合、コードが適切であることがわかります。「ユーザー マッピング: ここに画像の説明を入力してください」と表示されている投稿から、ユーザー「テスト」にどのようなアクセス権を付与しましたか? 少なくとも db_datareader が必要で、生成されるコードによってはそれ以上必要になる場合もあります。

「テスト」ユーザーで SQL Management Studio にログオンして、コードを実行できるかどうかを確認することもできます。これにより、アプリケーション/ネットワークに問題がある可能性がなくなります。

于 2011-02-17T10:02:39.810 に答える