【问题标题】:How to connect to SQL Server using activerecord, JDBC, JTDS and Integrated Security如何使用 activerecord、JDBC、JTDS 和 Integrated Security 连接到 SQL Server
【发布时间】:2010-05-17 23:59:09
【问题描述】:

按照上面的方法,我试过了:

establish_connection(:adapter  => "jdbcmssql", :url => "jdbc:jtds:sqlserver://myserver:1433/mydatabase;domain='mynetwork';", :username => 'user', :password=>'pass' )
establish_connection(:adapter  => "jdbcmssql", :url => 'jdbc:jtds:sqlserver://myserver:1433/mydatabase;domain="mynetwork";user="mynetwork\user"' )
establish_connection(:adapter  => "jdbcmssql", :url => "jdbc:jtds:sqlserver://myserver:1433/mydatabase;domain='mynetwork';", :username=>'user' )
establish_connection(:adapter  => "jdbcmssql", :url => "jdbc:jtds:sqlserver://myserver:1433/mydatabase;domain='mynetwork';integratedSecurity='true'", :username=>'user' )

.. 以及其他各种组合。

每次我得到:

net/sourceforge/jtds/jdbc/SQLDiagnostic.java:368:in `addDiagnostic': java.sql.SQLException: Login failed for user ''. The user is not associated with a trusted SQL Server connection. (NativeException)

如果我在没有用户信息的情况下尝试:

establish_connection(:adapter  => "jdbcmssql", :url => "jdbc:jtds:sqlserver://myserver/mydatabase") 

我收到以下回复:

net/sourceforge/jtds/jdbc/SQLDiagnostic.java:368:in `addDiagnostic': java.sql.SQLException: Login failed for user 'sa'. (NativeException)

有什么建议吗?谢谢,

  • 活动记录 (2.3.5)
  • activerecord-jdbc-适配器 (0.9.6)
  • activerecord-jdbcmssql-适配器 (0.9.6)
  • jdbc-jtds (1.2.5)
  • jruby 1.4.0 (ruby 1.8.7 patchlevel 174) (2009-11-02 69fbfa3) (Java HotSpot(TM) Client VM 1.6.0_18) [x86-java]

【问题讨论】:

    标签: sql-server activerecord jdbc jruby jtds


    【解决方案1】:

    您可以尝试同时删除域、用户和密码吗?我通过使用 Java 中的 JTDS 集成安全性连接到 SQL Server,我唯一指定的是服务器和数据库,因为它会从我登录的机器中获取其余的凭据。其实你也可以省略1433端口,因为我相信这是SQL Server的标准端口,所以可以省略。

    【讨论】:

      【解决方案2】:

      当没有给出用户时,文件ruby/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9.6-java/lib/active_record/connection_adapters/jdbc_adapter.rb 第 54 行替换为“sa”。

      要解决此问题,请指定一个空白用户名,例如:

      establish_connection(:adapter  => "jdbcmssql", :url => "jdbc:jtds:sqlserver://myserver/mydatabase", :username=>'') 
      

      (非常感谢 limc,他的回答让我朝这个方向看)

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-03-05
        • 2014-04-07
        • 1970-01-01
        • 1970-01-01
        • 2014-03-03
        • 1970-01-01
        • 1970-01-01
        • 2015-09-27
        相关资源
        最近更新 更多