:Francis: Skrevet 13. februar 2009 Del Skrevet 13. februar 2009 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
kaian Skrevet 13. februar 2009 Del Skrevet 13. februar 2009 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
iLoop Skrevet 13. februar 2009 Del Skrevet 13. februar 2009 Hei Tipper uten at du skriver dette at du lager en web site og at da har en fil som heter web.config? I denne er det en seksjon som heter <connectionstrings> her må du fylle inn med informasjon som du trenger for å snakke med sql server på w2k3 boksen. eksempler på hvordan dette skal se ut finner du på http://www.connectionstrings.com/sql-server-2005 Håper dette hjelper deg Lenke til kommentar
Trondster Skrevet 13. februar 2009 Del Skrevet 13. februar 2009 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
:Francis: Skrevet 13. februar 2009 Forfatter Del Skrevet 13. februar 2009 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
:Francis: Skrevet 24. februar 2009 Forfatter Del Skrevet 24. februar 2009 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
kaffenils Skrevet 24. februar 2009 Del Skrevet 24. februar 2009 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
Trondster Skrevet 24. februar 2009 Del Skrevet 24. februar 2009 Hvordan kan jeg gi brukeren min rettigheter til aksessere den eksterne databasen? Du skal oprette brukeren din som bruker på databaseinstansen og på databasen. Pass også på at maskinene er i samme domene. Er brukeren du kjører som opprettet som bruker på databasen? Lenke til kommentar
:Francis: Skrevet 24. februar 2009 Forfatter Del Skrevet 24. februar 2009 (endret) 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 24. februar 2009 av :Francis: Lenke til kommentar
kaffenils Skrevet 24. februar 2009 Del Skrevet 24. februar 2009 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
Trondster Skrevet 24. februar 2009 Del Skrevet 24. februar 2009 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
:Francis: Skrevet 24. februar 2009 Forfatter Del Skrevet 24. februar 2009 Jeg fikk det til vha SQL Login . Tusen takk til alle som har hjulpet meg! Mvh Francis Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå