# MS-SQL Express Login-Problem



## rwolf (17. Jul 2012)

hi all,

komme einfach nicht weiter mit folgendem : 

habe 2 Win7-PCs per Netzwerk verbunden, auf einem läuft SQL-Server-Express 2008 R2,
an die dort befindliche Datenbank "KI-Model_I" komme ich mit SQL-Manamant-Studio 
heran (KW:SA PW:walter731 , ist nur zum Testen..)

auf dem anderen PC komme ich ebenfalls mit SQL-Managemant-Studio 
heran (KW:SA PW:walter731)

aber mit JavaSE heißt es immer :

dbiface get_direct_con : keine Verbindung !?Die von der Anmeldung angeforderte KI_MODEL_I-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Java Result: -1

dabei habe ich solche Verbindungen immer wieder zu Voll-SQL-Server-DB's 
eines Kunden (auch noch über VPN) immer aufbauen können, ohne Passwort-Probleme !

Das mit 'SA' als hab ich auch nur zufällig rausgekriegt, aber was fürn Password gehört denn dazu ?
Warum geht das nicht mit dem Login, das ich beim Management Studio verwende ?

hier mal der JAva-Code :

```
public static Connection get_direct_con()
    {
        Connection con = null;
            if(test_mode)
                    System.out.println("dbiface get_direct_con READ-SQL Param : "+mps.con_dat[mps.CONNDAT_TEXT]+
                                                            " KW : "+mps.con_dat[mps.CONNDAT_KW]+
                                                            " PW : "+mps.con_dat[mps.CONNDAT_PW]+
                                                            " T2 : "+mps.con_dat[mps.CONNDAT_TEXT2] );
                try
                {
                   
                   SQLServerDataSource ds = new SQLServerDataSource();
                   
                   ds.setServerName("WALTER-PC\\SQL_KISTER");
                   ds.setDatabaseName("KI_MODEL_I");
                   //ds.setIntegratedSecurity(true);
                   ds.setUser("SA");
                   ds.setPassword("walter731");
                   
                   //ds.setPortNumber(1433);
                   
                   /*
                   SQLServerDataSource ds = new SQLServerDataSource(); 
                   ds.setServerName(mps.con_dat[mps.CONNDAT_TEXT2]);
                   ds.setDatabaseName(mps.con_dat[mps.CONNDAT_TEXT]);
                   ds.setUser(mps.con_dat[mps.CONNDAT_KW]);
                   ds.setPassword(mps.con_dat[mps.CONNDAT_PW]);
                   */
                   con = ds.getConnection();

                    /* -- hier Treiber-Probleme --
                    String connectionUrl = "jdbc:sqlserver:WALTER-PC/SQL_KISTER;" +
			"databaseName=KI_Model1_I;";
                    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            		con = DriverManager.getConnection(connectionUrl);                    
                        * 
                        */
                   if(test_mode)
                        System.out.println("DMSS Con erstellt !");
                }
                catch (Exception e)
                {
                    System.err.println("dbiface get_direct_con : keine Verbindung !?"+e.getMessage());
                    mps.show_msg_dialog("MSS-Server-Aufruf :","keine Verbindung !?");
                    System.exit(-1);
                }
                finally
                {
                    //if(con != null) try { con.close() ; } catch (Exception e) {}
                }

                test_mode = false;
                return con;

    }
```
auskommentiertes entstammt der normalerweise geschalteten Leseart aus einem externen
txt-File, wollte aber alle Nebeneffekte ausschalten..

arbeite mit NetBeans 7.1.2, dort im lib-Verzeichnis habe ich die Treiber sqljdbc.jar und sqljdbc4.jar,
aber das wird beim o.g. Code nicht angemeckert.

please help !


----------



## FenchelT (17. Jul 2012)

Guck mal im Configurationsmanager --> TCP/IP ob das aktiviert ist und ob Port 1433 eingetragen ist


----------



## FenchelT (17. Jul 2012)

Ich kann uebrigens mit


```
db = new DBConnection("com.microsoft.sqlserver.jdbc.SQLServerDriver", 
		 			   "jdbc:sqlserver://localhost:1433;" +
					   "databaseName=myDB","sa","myPW");
```

problemlos auf ne SQLServer 2008 Express zugreifen


Viele Gruesse


----------



## rwolf (17. Jul 2012)

FenchelT hat gesagt.:


> Guck mal im Configurationsmanager --> TCP/IP ob das aktiviert ist und ob Port 1433 eingetragen ist



ist der Fall !

Wie und vor allem wo kann ich bei SQL-Server-Express nachträglich nen weiteren Benutzer anlegen ?
weder beim Konfig-Manager gibts dazu eine Option...


----------



## FenchelT (17. Jul 2012)

Entweder ueber Kommandozeile, oder Du laedst Dir das SQL Managementstudio Express herunter


----------



## rwolf (17. Jul 2012)

daß ich bereits mit SQL-MAnagement-Studio arbeite.....

erst durch weiteres googeln nach SQL-SErverExproess-Login bzw. SQL-Server + Benutzer hab ich rausgekriegt, wo die Benutzeranlage im Studio versteckt ist (Ostereiersuche bei WinzigWeich)

hab auch nen Benutzer angelegt, konnte aber nur nen Benutzernamen angeben, kein extra Passwort,
was doch für den "gemischten Modus" erforderlich wäre..

einige Radiobuttons sind abgeschaltet und bisher nicht wiederbelebbar

microsoft macht mich bald wahnsinnig : hilfen sind keine hilfen, sondern führen
in ein nirwana von selbsterfundenen "fach"ausdrücken und völlig zielfremden themen ..

wie kann ich denn nun ganz normal und ohne MS-spezifisches IT-Studium einen Benutzer
als zusätzlichen admin mit Kennwort und PAsswort anlegen ?

ich mach mir erstmal nen kaffee !


----------



## FenchelT (17. Jul 2012)

wenn Du Ahnung von MSSQL haettest wuesstest Du, wie man einen User anlegt.
Das ist seit Jahr und Tag gleich. 

Wenn Du keine Ahnung davon hast und man muss weiss Gott kein Dr. Informatik sein, um das hinzubekommen, dann weiss ich nicht ob es gut ist Dir zu sagen, wie man einen User mit Admin Rechten anlegt, vor allem wenn Du Kunden in diesem Segment hast.

Wenn Du schon keine Ahnung hast und andere sich Zeit fuer Dich nehmen, kann man schon ein wenig mehr Hoeflichkeit im Betreff erwarten.

Niemand, der auch nur ansatzweise schonmal was damit zu tun hatte wuerde auf die Idee kommen, im Configurationsmanager einen User anzulegen, weshalb ich Dir zum Mgmt Studio geraten habe.
Dass ich nicht jedes Mal aufs Neue alle Beitraege durchlese, nehme ich gerne auf meine Kappe.

Es gibt im Mgmt Studio einen Ordner Security (oder Sicherheitseinstellungen heisst der glaub ich in der deutschen Version). Dort kannst Du einen neuen User anlegen der das Recht hat, sich mit dem Server zu verbinden.

Du musst dem User aber auch die Rechte geben, auf eine DB zuzugreifen (Unterschied zwischen Server und Datenbankrechten)

So nun viel Glueck, ich bin raus. Habe noch anderes zu tun.


----------



## rwolf (18. Jul 2012)

sorry,das war garnicht arrogant gemeint,aber ich hatte doch schon im ersten post vom S-M-S
geschrieben, also wunderte ich mich über deine download-empfehlung

zumal , wieso wäre meine vermutung mit dem user-anlegen im konfig-bereich sooo falsch ? in anderen DB's siehts anders aus..

tja, und komischerweise - oder hab ich das falsche S-M-S ? - kann ich dort nur den user anlegen, aber
kein passwort, wie es für den gemischten modus doch nötig wäre..da wird ein schema verlangt, verschiedene rollen sind anzukreuzen..und ein Anmeldename ..
wie greift den das S-M-S auf die DB zu ? Damit klappts ja..die DB ist den für den gemischten modus
eingestellt, Portnummer 1433 belassen und TC/IPusw. ist aktiviert..

hab bereits ORACLE-Vollversion angelegt und natürlich auch mySQL..aber hier ists wieder anders..


----------



## rwolf (18. Jul 2012)

anscheinend bin ich etwas weiter, die Meldung beim Login über JAVE heisst jetzt :

dbiface get_direct_con : keine Verbindung !? Die von der Anmeldung angeforderte KI_MODEL_I-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Java Result: -1

jedenfalls kein TCPIP-Problem mehr, gelle ?

momentan der Code :


```
import java.util.*;
import java.sql.*;
import java.sql.Types.*;

import com.microsoft.sqlserver.jdbc.*;
import com.microsoft.sqlserver.jdbc.SQLServerConnection.*;
import com.microsoft.sqlserver.jdbc.SQLServerDriver.*;

import java.io.*;
import java.text.*;

public class dbiface
{
.....
                try
                {
                   
                   SQLServerDataSource ds = new SQLServerDataSource();
                   
                   ds.setServerName("WALTER-PC\\SQL_KISTER");
                   ds.setDatabaseName("KI_MODEL_I");
                   //ds.setIntegratedSecurity(true);
                   ds.setUser("SA");
                   ds.setPassword("walter731");
                   
                   //ds.setPortNumber(1433);
                   
                   /*
                   SQLServerDataSource ds = new SQLServerDataSource(); 
                   ds.setServerName(mps.con_dat[mps.CONNDAT_TEXT2]);
                   ds.setDatabaseName(mps.con_dat[mps.CONNDAT_TEXT]);
                   ds.setUser(mps.con_dat[mps.CONNDAT_KW]);
                   ds.setPassword(mps.con_dat[mps.CONNDAT_PW]);
                   */
                   
                   con = ds.getConnection();
                   
                    /*
                    String connectionUrl = "jdbc:sqlserver:WALTER-PC/SQL_KISTER;" +
			"databaseName=KI_Model1_I;";
                    Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver");
            		con = DriverManager.getConnection(connectionUrl);                    
                        * 
                        */
                    /*
                    con = DriverManager.getConnection( "jdbc:sqlserver://localhost:1433;" +
                       "databaseName=KI_MODEL_I","sa","walter731");                    
                       * 
                       */
                   if(test_mode)
                        System.out.println("DMSS Con erstellt !");
                }
                catch (Exception e)
                {
                    System.err.println("dbiface get_direct_con : keine Verbindung !?"+e.getMessage());
                    mps.show_msg_dialog("MSS-Server-Aufruf :","keine Verbindung !?");
                    System.exit(-1);
                }
                finally
                {
                    //if(con != null) try { con.close() ; } catch (Exception e) {}
                }

                test_mode = false;
                return con;
...
```


----------

