Gå til innhold

Hjelp til å koble seg opp mot SQL Server 2005


Anbefalte innlegg

Hei!

 

Jeg prøver å koble meg opp mot en database som kjører på MS SQL Server 2005. Databaseserveren kjører på en Win 2k3 maskin.

Jeg kommuniserer med databasen vha C# / ASP .NET.

 

Jeg klarer å kommunisere (skrive til og lese fra) med en database som ligger lokalt på samme maskin som utviklingsverktøyet, men jeg får ikke tilgang til databasen som kjøres på Win 2k3 serveren.

 

Er det noen som har greier på å koble seg opp mot ikke-lokale databser, og vet hva som må gjøres for å få det til? Maskinene er i samme lokalnettverk og arbeidsgruppe.

 

Mvh

 

Francis

Lenke til kommentar
Videoannonse
Annonse

Jeg er nokså rusten på adressering av sqlserver, men dersom noen som ser dette er mindre rusten vil det hjelpe dem å vite hvordan du forsøker å gjøre oppkoblingen. (detaljer, men ta en søk/erstatt på maskin- og database- og brukernavn først...)

 

En vanlig måte er forresten å fortelle maskinen du sitter på at du vet om en datakilde et sted, og hva du vil kalle den lokalt og hvordan den skal kontaktes. Instillinger, kontrollpanel, administrative verktøy, datakilder, hvis det kan hjelpe.

Lenke til kommentar

Bruker du NT auth eller SQL Server auth?

-Brannmur på w2k3-serveren - har du åpnet porten?

-Lag en ODBC-connection på utviklingsserveren og test denne. Så vet du at det ikke er koden din som er problemet.

-(Klassiker!) ..Gå inn på Properties på selve databaseserveren. Gå inn på Connections. Sjekk etter at du har en "flueben", som det heter på dansk, inne i "Allow remote connections to this server". Brukte en halv dag på å finne den der en gang.. ;)

-Det er ikke noe brannmur-tull på din egen lokalmaskin?

-Hvis du bruker NT auth - er du helt sikker på hvilken bruker du kjører som? Som brukeren i app pool, som deg selv eller som brukeren satt opp som anonym bruker på websitet?

Lenke til kommentar

http://www.connectionstrings.com/sql-server-2005

 

Denne har jeg allerede vært inne på for å finne riktig string.

 

Jeg har laget noe ala:

 

SqlConnection myConn = new SqlConnection("Server=thisComputerName; Database=myDatabase; Integrated Security=SSPI");

 

string mySQLString = "SELECT * FROM tabell";

 

SqlCommand myCmnd = new SqlCommand(mySQLString, myConn);

 

myCmnd.ExecuteNonQuery();

 

Det vil selvsagt ikke skje noe med denne spørringen siden jeg ikke bruke en reader i eksempelet,men dere skjønner tegninga.

 

Jeg tror jeg skal ha klart å enable eksterne forespørsler i serveren, og lagt til SQL server 2005 til unntakene i brannmuren. Serveren står på skolen, så jeg får ikke testet noe videre før mandag.

 

Tusen takk for alle svar så langt!

 

Francis

Lenke til kommentar
  • 2 uker senere...

Jeg har brukt den siste uken på å skrive dpkumenter, så dette arbeidet har blitt lagt på is frem til nå.

 

Jeg har lagt til exception i brannmuren for SQLServer 2005 (på 2k3 serveren), men jeg tenkte jeg kunne teste å slå den helt av for testingens skyld.

 

Jeg fikk da denne meldingen når siden prøvde å laste:

 

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

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

 

Exception Details: System.Data.SqlClient.SqlException: Login failed for user ''. The user is not associated with a trusted SQL Server connection.

 

Source Error:

 

Line 18: {

Line 19: myConn = new SqlConnection("Server=DS\\DCD;Database=testDatabase;Integrated Security=SSPI");

Line 20: myConn.Open();

Line 21: }

Line 22: protected void Button1_Click(object sender, EventArgs e)

 

Feilmeldingen kom momentant i browseren, mens jeg må vente lenge før jeg får feilmelding når brannmuren er på.

 

Den "gamle" feilmeldingen er denne:

 

A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code.

 

Exception Details: System.Data.SqlClient.SqlException: A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)

 

Source Error:

 

Line 18: {

Line 19: myConn = new SqlConnection("Server=158.36.9.113;Database=testDatabase;Integrated Security=SSPI");

Line 20: myConn.Open();

Line 21: }

Line 22: protected void Button1_Click(object sender, EventArgs e)

 

 

 

Hvordan kan jeg gi brukeren min rettigheter til aksessere den eksterne databasen?

 

Mvh

 

Francis

Lenke til kommentar

Problemet er at maskinen som kjører SQL Serveren ikke har noe kjennskap til brukeren som er logget på klienten. Vi bruker Active Directory og da fungerer slikt fint, men hvordan du kan bruke Integrated Security/SSPI når maskinene ikke er medlem av noe domene vet jeg ikke.

 

Det du kan gjøre er å opprette en SQL Server bruker og bruke denne i connection-strengen.

Lenke til kommentar

Takk for svar!

 

Jeg har lett rundt i SQL Server Management Studio etter et sted hvor jeg kan opprette en SQL bruker slik at jeg kan gjøre som du sier; bruke SQL autentisering i connectionstringen, men jeg finner ikke stedet hvor slike brukere opprettes.

 

Er active directory mas å sette opp og få til å fungere?

 

EDIT: Maskinene er i samme arbeidsgruppe, hvis det er det du tenker på? Jeg har ærlig talt ikke snøring på autentisering osv i nettverk.

 

Francis

Endret av :Francis:
Lenke til kommentar
Jeg har lett rundt i SQL Server Management Studio etter et sted hvor jeg kan opprette en SQL bruker slik at jeg kan gjøre som du sier; bruke SQL autentisering i connectionstringen, men jeg finner ikke stedet hvor slike brukere opprettes.

 

Er active directory mas å sette opp og få til å fungere?

 

EDIT: Maskinene er i samme arbeidsgruppe, hvis det er det du tenker på? Jeg har ærlig talt ikke snøring på autentisering osv i nettverk.

Opprette login og bruker i SSMS: Security->Logins->høyreklikk->New login. Skriv inn brukernavn og passord du ønsker. Gå til User Mappings og velg hvilke databaser og roller denne brukeren skal ha tilgang til.

 

Ja, Active Directory er mye mas å sette opp og hvordan SSPI autentisering fungerer innen samme workgroup er jeg jammen ikke sikker på. Prøv Google.

Lenke til kommentar
Takk for svar!

 

Jeg har lett rundt i SQL Server Management Studio etter et sted hvor jeg kan opprette en SQL bruker slik at jeg kan gjøre som du sier; bruke SQL autentisering i connectionstringen, men jeg finner ikke stedet hvor slike brukere opprettes.

 

Er active directory mas å sette opp og få til å fungere?

 

EDIT: Maskinene er i samme arbeidsgruppe, hvis det er det du tenker på? Jeg har ærlig talt ikke snøring på autentisering osv i nettverk.

 

Francis

I samme arbeidsgruppe? Så kan det kanskje være det enkleste er å oprette en bruker med SQL Server-login.

 

Gå inn på serveren->Security->Logins og opprett et login.

Deretter, gi brukeren tilgang til ønsket database. Dette kan du gjøre mens du opretter login'et, eller gå inn på serveren->Databases->[databasenavn]->Security->Users. Her oppretter du en user som er knyttet til login'en.

 

Oprette user og login skal du uansett - har du ikke gjort dette er det ikke underlig at du ikke kan koble opp. ;)

I det du oppretter user velger du om det skal være en bruker med NT auth eller SQL Server.

 

Tror det kan være en god idé å finne noen tutorials om saken.. ;)

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...