не могу получить данные с сервера sql - PullRequest
1 голос
/ 17 февраля 2011

Я не могу получить данные из БД на сервере SQL.

Я использую 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, и его db по умолчанию - TIMDB, роли сервера общедоступны, и это сопоставление пользователей: enter image description here

Но когда я запускаю приложение, я ничего не могу получить.

Из журнала, созданного log4j, я могу получить sql, используемый для извлечения данных, но если я скопирую sql в среду управления sql и создам новый запрос, я смогу извлечь некоторые данные.

Интересно, почему?

1 Ответ

2 голосов
/ 17 февраля 2011

Похоже, проблема с разрешениями для меня. Если сгенерированный SQl запускается, когда вы используете его в Management Studio (т.е. под своей учетной записью пользователя), то вы знаете, что код хорош. Какой доступ вы дали пользователю "test" из вашего поста, который я вижу "user mapping: введите описание изображения здесь"? ему потребуется как минимум db_datareader и, возможно, больше, в зависимости от того, какой код генерируется.

Вы также можете попробовать войти в SQL Management Studio под своим «тестовым» пользователем и посмотреть, сможете ли вы выполнить код. Это исключит вероятность того, что что-то не так с вашим приложением / сетью.

...