2010-04-27 2 views
1

J'utilise le code suivant pour vous connecter avec Sql Server 2008:Utilisation du pilote JDBC pour se connecter avec Sql Server 2008

Connection con = null; 
CallableStatement stmt = null; 
ResultSet rs = null; 

try 
{ 
    SQLServerDataSource ds = new SQLServerDataSource(); 
    ds.setIntegratedSecurity(false); 
    ds.setServerName("localhost"); 
    ds.setInstanceName("MSSQLSERVER2008"); 
    ds.setPortNumber(1433); 
    ds.setUser("televic-edu3-dev"); 
    ds.setPassword("internal"); 
    ds.setDatabaseName("televic-edu3-dev"); 
    con = ds.getConnection(); 
    ... 

Il me donne l'erreur suivante:

Login failed for user 'televic-edu3-dev'. The user is not associated with a trusted SQL Server connection.

mode mixte est activé sur mon instance SqlServer. J'ai déjà essayé de me connecter à mon instance de SqlServer avec les mêmes informations d'identification, ce qui fonctionne. En .NET, cela fonctionne avec un connectionString qui a les mêmes informations d'identification ... Alors qu'est-ce que je fais de mal?

C'est le connectionString de .NET:

TLV-EDU-LIC\MSSQLSERVER2008;Password=internal;Persist Security Info=True;User ID=televic-edu3-dev;Initial Catalog=televic-edu3-dev

J'ai aussi essayé cela par la manière, ce qui me donne la même erreur (ce qui est logique):

Connection con = null; 
Statement stmt = null; 
ResultSet rs = null; 

try 
{ 
    String connectionUrl = "jdbc:sqlserver://localhost:1433;" + 
    "instanceName=MSSQLSERVER2008;databaseName=televic-edu3-dev; 
     userName=televic-edu3-dev;password=internal;"; 

Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); 
    con = DriverManager.getConnection(connectionUrl); 

Répondre

1

Bien, en omettant le ds.setPortNumber (1433); ça marche. Je ne sais pas pourquoi ... mon instance sqlserver s'exécute sur le port 1433.

0

Vous utilisez l'authentification de domaine (nom d'utilisateur Windows) plutôt que l'authentification DB. Assurez-vous que la JVM s'exécute avec le même nom d'utilisateur Windows et donc pas en tant que service système. Si ce n'est pas une option, utilisez l'authentification DB à la place.

+0

ds.setIntegratedSecurity (false); –

+0

Je n'ai pas vu ça. Je traduisais juste le message d'erreur en mots faciles à comprendre :) Bizarre que d'omettre le numéro de port change beaucoup de choses. – BalusC

Questions connexes