Как подключиться к SQL Server, используя activerecord, JDBC, JTDS и Integrated Security - PullRequest
0 голосов
/ 18 мая 2010

В соответствии с вышеизложенным, я пробовал:

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)

Есть советы? Спасибо,

  • activerecord (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 174) (2009-11-02 69fbfa3) (Java HotSpot (TM) Client VM 1.6.0_18) [x86-java]

Ответы [ 2 ]

1 голос
/ 18 мая 2010

Можете ли вы попробовать удалить домен, пользователя и пароль все вместе? Я подключаюсь к SQL Server через интегрированную безопасность, используя JTDS в Java, и единственное, что я указал, - это сервер и база данных, потому что он забирает оставшиеся учетные данные с компьютера, на котором я вошел. Фактически, вы также можете опустить порт 1433, потому что я считаю, что это стандартный порт для SQL Server, поэтому его можно опустить.

0 голосов
/ 18 мая 2010

Файл 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=>'') 

(Большое спасибо Лимку, чей ответ заставил меня взглянуть в этом направлении)

...