Laden...

SQL Verbindung

Erstellt von Scooby2007 vor 16 Jahren Letzter Beitrag vor 16 Jahren 15.447 Views
S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren
SQL Verbindung

Hallo zusammen,

ich hab hier ein Problem und wüsste gern mal eure Meinung.Ich versuche gerad auf eine SQL Datenbank zuzugreifen.Hier mal meine Verbindung


 SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "Data Source = localhost, Initial Catalog = PUBS, Trusted_Connection = yes";
            conn.Open();


Wenn ich jetzt mein Programm ausführe kommt folgende Meldung:

Fehler beim Herstellen einer Verbindung mit dem Server. Beim Herstellen einer Verbindung mit SQL Server 2005 kann dieser Fehler dadurch verursacht werden, dass unter den SQL Server-Standardeinstellungen Remoteverbindungen nicht zulässig sind. (provider: SQL-Netzwerkschnittstellen, error: 25 - Verbindungszeichenfolge ungültig)

Was kann ich tun ???

2.187 Beiträge seit 2005
vor 16 Jahren

Müsste der Connection-String nich wie folgt lauten:


Data Source = localhost, Initial Catalog = PUBS, Trusted_Connection = true

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Also laut meiner Fachlektüre kommt da ein yes rein.Aber true geht wohl auch anscheinend.Trotzdem is das eigentliche Problem damit nicht gelöst.

L
770 Beiträge seit 2006
vor 16 Jahren

Hallo,

soweit mir bekannt ist, wird im connectionstring mit ";" getrennt, nicht mit ",".

lg

lg Lion

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Ja stimmt. Das war ein Fehler meinerseits FG. Aber die Meldung kommt immer noch.Ich hab meine Remoteeinstellungen mal angeschaut.Ich habe den Radiobutton auf Lokale Verbindungen und Remotverbindungen gesetzt und dann von den 3 Auswahlmöglichkeiten die "TCP/IP und Name Pipes verwenden" genommen.

E
124 Beiträge seit 2006
vor 16 Jahren

Hallo

Ich hab meine Remoteeinstellungen mal angeschaut.

Wieso Deine? Die vom Server musst Du anschauen.

error: 25 - Verbindungszeichenfolge ungültig

Poste doch nochmal Deinen Connectionstring, so wie er jetzt nach den beiden Änderungen aussieht.

Grüße
Elric

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Ja des meinte ich ja.Sollte eigentlich stimmen.


SqlConnection conn = new SqlConnection();
            conn.ConnectionString = "Data Source = localhost; Initial Catalog = PUBS; Trusted_Connection = yes";
            conn.Open();

Hier nochmal die Meldung:
Fehler beim Herstellen einer Verbindung mit dem Server. Beim Herstellen einer Verbindung mit SQL Server 2005 kann dieser Fehler dadurch verursacht werden, dass unter den SQL Server-Standardeinstellungen Remoteverbindungen nicht zulässig sind. (provider: Named Pipes-Provider, error: 40 - Verbindung mit SQL Server konnte nicht geöffnet werden)

L
770 Beiträge seit 2006
vor 16 Jahren

Hast du denn auch

"TCP/IP und Name Pipes verwenden" aktiviert am Server? Du hast ja nur eingestellt, er solle es verwenden, aber ob es aktiviert ist?

lg

lg Lion

E
124 Beiträge seit 2006
vor 16 Jahren

Ja, ich hätte am ConnectionString sehen können, dass Dein Rechner und der DB-Server derselbe ist.

Aber du kannst vielleicht mal auf der Seite stöbern:
http://www.connectionstrings.com

Da steht z.B. auch, dass bei .NET-SqlConnections =true und nicht =yes verwendet wird.

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Und wie wird es aktiviert ???? Indem ich den Server neustarte ???

L
770 Beiträge seit 2006
vor 16 Jahren

Im "SQL Server Configurator Manager", zu findem im Startmenü im SQL Server Bereich. Da gibt es Links den Punkt "SQL Server Network configuration", da wählst du deinen Server aus und konfigurierst ihn dementsprechend.

lg

lg Lion

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Dort ist alles aktiviert.

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Also so wie es aussieht hab ich wohl ein Verbindungsproblem.Ich habs mal mit ner anderen DB(mdf) getestet.Genau dasselbe.Was könnte ich denn noch tun ???

3.825 Beiträge seit 2006
vor 16 Jahren

Muss es eine "Trusted Connection" sein ?

Der Eintrag der Suchwörter "Problem mit Trusted Connection) bei Google bringt immerhin über 1.850.000 Treffer. Das problem scheint es wohl öfter zu geben.

Probier zuerst ohne Trusted Connection :

SQL-Server auf SQL- oder gemischte Authentifizierung stellen.

Im Connectionstring User und Kennwort angeben :

string connstr = "integrated security=false;data source=server_ip;user id=sa;password=password;persist security info=false;initial catalog=" + database;

Dann klappts auf jeden Fall (zu 99,9%).

Grüße Bernd

Workshop : Datenbanken mit ADO.NET
Xamarin Mobile App : Finderwille Einsatz App
Unternehmenssoftware : Quasar-3

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Das funktioniert leider auch nicht.Die Meldung ist immer noch dieselbe.Das scheint wohl ein größeres internes Problem zu sein.

H
74 Beiträge seit 2006
vor 16 Jahren

Probiers doch mal mit der Alternative:


con = "Server=myServerAddress;Database=myDataBase;Integrated Security=SSPI"

Welche Server version hast du eigentlich

Grüße

Hawk

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

SQL Server Express 2005.Diese Variante hatte ich auch schon mal probiert.ist genau dasselbe.

H
74 Beiträge seit 2006
vor 16 Jahren

Server=localhost\SQLExpress

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Ok so wie es aussieht geht das.Nur das bei einem Backslash ein nichterkannte Escapesequenz gemeldet wird.Bei 2 Backslash funktioniert es.Dafür gibt es jetzt ein neues Problem, und so wie es aussieht ein Rechteproblem.

"Die von der Anmeldung angeforderte "PUPBS"-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Fehler bei der Anmeldung für den Benutzer 'SCOOBYPC\Scooby'."

Wie kann ich das noch beseitigen ???

L
770 Beiträge seit 2006
vor 16 Jahren

Hallo,

also Escapesequenz sind grundlagen, die soltlest du kennen 🙂

und hast du jetzt mit username und pw gearbeitet?

lg

lg Lion

H
74 Beiträge seit 2006
vor 16 Jahren

Hies die Datenbank nicht "PUBS"?

//ich editiere auch jeden Beitrag 🙁

@Lion1984 eine Authentifizierung benötigt man nur wenn man ohne Windows-Authentifizierung arbeitet. Ich glaube nicht, dass diese umgestellt wurde.

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Nein noch nicht.Ich hab die Windows Authentifizierung genommen.Müsste das dann nicht reichen ?

Ja stimmt sie hiess so FG.Sorry.Aber es ist immer noch das Problem da mit den Rechten.

H
74 Beiträge seit 2006
vor 16 Jahren

Kommst du mit dem SQL Server Management Studio Express auch nicht drauf?

Falls dus noch nicht hast -> Lads dir runter (ist frei)
Wo? -> Frag Google

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Ok. Ich bin gerad am runterladen.Werds dann gleich testen.

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Also so wie es aussieht kann ich mich mit der Datenbank über dieses Managment Studio verbinden. Das Programm fragt mich am Anfang Servername (bei mir SCOOBYPC\SQLEXPRESS) und nach der Authentifizierung (Windowsauthentifizierung: Benutzername :SCOOBYPC/Scooby Password : keins).

H
74 Beiträge seit 2006
vor 16 Jahren

Existiert denn die Datenbank? Zu finden unter Datenbanken im Management Studio

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Ja sie ist verfügbar.Es wird alles angezeigt was die Datenbank enthält.

L
770 Beiträge seit 2006
vor 16 Jahren

Hy,

dann müßte es mit dem hier klappen:

string con = "Data Source=SCOOBYPC\SQLEXPRESS;Initial Catalog=DEINEDB;Trusted_Connection=yes;";

lg Lion

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Das funktioniert leider auch nicht.Da wird immer noch dieselbe Meldung ausgegeben.

Die von der Anmeldung angeforderte "PUBS"-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Fehler bei der Anmeldung für den Benutzer 'SCOOBYPC\Scooby'.

Hier mal der gesamte Code :


using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;


namespace SQLTest
{
    class Program
    {
        static void Main(string[] args)
        {
            string strCon = "Data Source=SCOOBYPC\\SQLEXPRESS; Initial Catalog=PUBS;Trusted_Connection=yes;";
            SqlConnection conn = new SqlConnection(strCon);
            
            conn.Open();
        }
    }
}


M
79 Beiträge seit 2006
vor 16 Jahren

Bin ja kein Profi, aber hast du denn schon mal die Berechtigungen auf dieser Datenbank kontrolliert? Meiner Meinung nach ist die Fehlermeldung ja ziemlich eindeutig.

L
770 Beiträge seit 2006
vor 16 Jahren

Original von Scooby2007
Ok so wie es aussieht geht das.Nur das bei einem Backslash ein nichterkannte Escapesequenz gemeldet wird.Bei 2 Backslash funktioniert es.Dafür gibt es jetzt ein neues Problem, und so wie es aussieht ein Rechteproblem.

"Die von der Anmeldung angeforderte "PUPBS"-Datenbank kann nicht geöffnet werden. Fehler bei der Anmeldung.
Fehler bei der Anmeldung für den Benutzer 'SCOOBYPC\Scooby'."

Wie kann ich das noch beseitigen ???

Ist es, dass hat er selbst gesagt, also daher nehme ich an, er hat es kontrolliert.

lg 🙂

lg Lion

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Also eigentlich hab ich volle rechte auf der datenbank.kompletter vollzugriff.aber es funktioniert trotzdem nicht.

M
79 Beiträge seit 2006
vor 16 Jahren

Kommst du denn drauf wenn du beim Connection string den sa angibst?

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Also ich hab jetzt gerad mal folgendes probiert.Da ich ja Server 2005 Express installiert habe sind ja auch Beispieldatenbanken mitinstalliert worden.In diesem Fall standartgemäß die DB's master, model usw.Ich hab dann mal die master Datenbank genommen und siehe da es geht ohne Probleme.Diese PUBS Datenbank habe ich aus einem MSIPacket das sich SQL2000SampleDb.msi nennt. Diese Packet hab ich installiert.Dann habe ich die PUBS Datenbank in diesem Pfad kopiert "C:\Program Files\Microsoft SQL Server\MSSQL.1\MSSQL\Data".Dort liegen auch die anderen Datenbanken von Server 2005 Express.Danach hab ich das msi packet wieder gelöscht. Liegt der Fehler vielleicht daran das das packet nicht deinstalliert werden sollte ???

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Also so wie es aussieht hat mercuer des Rätsels Lösung."User ID=sa"
Und siehe da es geht.Ohne Fehlermeldung.

M
79 Beiträge seit 2006
vor 16 Jahren

Na das mit dem sa user geht ist eigentlich nur der beweis dafür, dass dein user definitiv die falschen Berechtigungen hat. Ist ja nicht gerade empfehlenswert jeden Anwender mit dem sa user auf die datenbank loszulassen...

M
79 Beiträge seit 2006
vor 16 Jahren

...ich denke mal dein user hat zwar die richtigen berechtigungen, aber eben nicht auf dieser db

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

und wie kann ich das ändern ??? soll ich die berechtigungen direkt an der mdfDatei ändern ???

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Also so wie es aussieht funktioniert es mit dem User ID = sa doch nicht.Die Meldung kommt wieder.Ich hatte vorhin noch versehentlich die masterDB eingebunden.

L
770 Beiträge seit 2006
vor 16 Jahren

im SQL Managment Studio, wenn du dich einloggst hast du den Punkt Security, und da die Logins.. da machste einfach einen neuen Login mit deinem Konto:

New Login, Windows Auth. wählen, dein Konto angeben und sowmit gitbs den Login auf der Datenbank, dann noch die Rechte für die DB vergeben und das wars 🙂

(übrigens gibt da auch "Attach und Deattach methodne, um files anzzuhängen)
lg

lg Lion

L
770 Beiträge seit 2006
vor 16 Jahren

Hallo,

dann bestätigt sich das, es reicht nicht die Datenbank datei einfach zu kopieren.
Im Studi auf die Register Karte "Databases" mit der rechten Maustaste und "Attach". Dein file auswählen, dann sollt es zumindest am Server vorhanden sein.

lg

lg Lion

S
Scooby2007 Themenstarter:in
93 Beiträge seit 2007
vor 16 Jahren

Tja so wie es aussieht hilft das auch nicht.Laut dem Management Studio hab ich jetzt volle Rechte auf der Datenbank. Aber die Fehlermeldung erscheint weiterhin

M
79 Beiträge seit 2006
vor 16 Jahren

Ich frage mich gerade wie du vorhin behaupten konntest, du hättest Vollzugriff auf der Datenbank die nicht mal attached war 🤔

E
27 Beiträge seit 2007
vor 16 Jahren

Hab zwar bei mir SQL 2005 Pro, aber die Meldung kam mir einfach zu bekannt vor.
Schätze mal, es könnten mehrere Faktoren sein, die da zusammen spielen. (Ein nicht laufender DB Service verursacht den Fehler auch).

In meinen Connection Strings ist immer auch noch ein Provider (z.B. System.Data.SqlClient) angegeben, vielleicht fehlt das ?(