用户名的Hibernate SQLServerException

时间:2012-10-29 02:50:47

标签: sql-server hibernate

我正在尝试运行使用Hibernate和MS SQL Server Express的Java应用程序。

SQL Server配置了Windows身份验证作为登录方法。我还启用了TCP / IP端口1433(默认),但我仍然收到以下错误。

...// more output
at test.models.TestHibernate.main(TestHibernate.java:11)
Caused by: com.microsoft.sqlserver.jdbc.SQLServerException: Login failed for user 'not required'. ClientConnectionId:de7daf69-2619-4906-b063-459a5b614bdb
...// more output

抛出异常的行:

session.beginTransaction();

hibernate.cfg.xml中:

<property name="connection.driver_class">com.microsoft.sqlserver.jdbc.SQLServerDriver</property>
        <property name="connection.url">jdbc:sqlserver://localhost;databaseName=hibernatexml;integratedSecurity=false;</property>
        <property name="connection.username">not required</property>
        <property name="connection.password"/>

我删除了其他配置错误,但有了这个我没有想法。如果您需要更多信息,请告诉我

提前致谢。

2 个答案:

答案 0 :(得分:1)

  

SQL Server配置了Windows身份验证作为登录方法。   JDBC:SQLSERVER://本地主机;的databaseName = hibernatexml; integratedSecurity = FALSE;

如果您想使用Java应用程序中的integrated authentication with SQL Server,那么

  • JDBC URL应将integratedSecurity属性设置为true
  • sqljdbc_auth.dll安装中Microsoft SQL Server JDBC Driver的位置应设置为java.library.path JVM参数。 e.g。

    -Djava.library.path="C:/Program Files/sqljdbc_4.0.2206.100_enu/sqljdbc_4.0/enu/auth/x64/sqljdbc_auth.dll"
    

答案 1 :(得分:0)

在java.library.path中放置DLL的完整路径不会起作用,至少对Java 1.7来说是如此。你必须只指定目录,没有结尾&#34; /&#34;。

例如为: (1)失败......

java -cp .;"C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc4.jar"
     -Djava.library.path="C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\auth\x64\sqljdbc_auth.dl"
     ConnectMSSQLServer

警告:无法加载sqljdbc_auth.dll原因:java.library.path中没有sqljdbc_auth

com.microsoft.sqlserver.jdbc.SQLServerException:此驱动程序未配置为集成身份验证。

(2)好的!

java -cp .;"C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\sqljdbc4.jar"
     -Djava.library.path="C:\Program Files\Microsoft JDBC Driver 4.0 for SQL Server\sqljdbc_4.0\enu\auth\x64"
     ConnectMSSQLServer

希望这有帮助,

何。