2010-05-17 16 views
0

Selon ce qui précède, je l'ai essayé:Comment se connecter à SQL Server à l'aide activerecord, JDBC, JTDS et sécurité intégrée

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') 

.. et diverses autres combinaisons.

Chaque fois que je reçois:

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) 

Si j'essaie avec pas d'info utilisateur:

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

Je reçois cette réponse:

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

Des conseils? Merci,

  • activerecord (2.3.5)
  • activerecord-jdbc-adaptateur (0.9.6)
  • activerecord-jdbcmssql-adaptateur (0.9.6)
  • JDBC-jtds (1.2.5)
  • JRuby 1.4.0 (rubis 1.8.7 patchlevel 174) (2009-11-02 69fbfa3) (Java HotSpot (TM) client VM 1.6.0_18) [x86-java]

Répondre

0

Fichier ruby/lib/ruby/gems/1.8/gems/activerecord-jdbc-adapter-0.9.6-java/lib/active_record/connection_adapters/jdbc_adapter.rb ligne 54 substitue 'sa' quand aucun utilisateur n'est donné.

Pour contourner ce problème, spécifiez un nom d'utilisateur vide, par exemple .:

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

(Un grand merci à LIMC dont la réponse me suis regardant dans cette direction)

1

Pouvez-vous essayer supprimer le domaine, l'utilisateur et le mot de passe tous ensemble? Je me connecte à SQL Server via la sécurité intégrée à l'aide de JTDS en Java, et la seule chose que j'ai spécifiée est le serveur et la base de données, car elle récupère le reste des informations d'identification de la machine sur laquelle je me suis connecté. En fait, vous pouvez également omettre le port 1433 parce que je crois que c'est le port standard pour SQL Server, donc il peut être omis.

+0

grâce LIMC - J'ai essayé et mis à jour la question – Rob