Gå til innhold

Koble til en SQL server på en annen pc


Anbefalte innlegg

Jeg har jobbet med et stort program nå over ganske lang tid, som jeg heletiden utvider.

og neste skritt er å koble til en database som ligger på en annen maskin.

 

jeg programerer i vb.net i visual studio 2008, og jeg gjør alle SQL handlinger programelt. mao legger jeg ikke til data connection osv i visual studio, men kjører koder å gjør det i selve programmet.

 

for å koble til en database og legge til en table bruker jeg følgende kode:

 

 

       connectionstring = "Server=KIM-PC\SQLEXPRESS;Integrated Security=True;database=nytest"

       Dim objConn As New SqlConnection(connectionstring)
       objConn.Open()

       Dim objCmd As New SqlCommand("Create Table Personell(Etternavn Varchar(50))", objConn)
       objCmd.CommandType = CommandType.Text
       objCmd.ExecuteNonQuery()

 

I dette tilfellet er serveren (KIM-PC) den samme pc'en jeg kjører programmet på, og da fungerer dette her kjempe fint.

 

jeg vil anta at dersom jeg skulle koble til en database med samme navn, som ligger på en annen PC på nettverket, så skulle det være nok å bare bytte ut KIM-PC med datamaskin navnet til den andre pc'en.

 

Men når jeg prøver dette får jeg kun feilmeldingen:

Det oppstod en feil under opprettingen av tilkoblingen til serveren. Ved tilkobling til SQL server 2005 kan denne feilen skyldes at standard instillingene for SQL Server ikke tillater eksterne tilkoblinger.

(provider: SQL network interfaces, error: 26 - feil under søk etter server/forekomst som er anngitt)

 

prøver jeg å legge til en data source manuelt visual studio, med samme datamaskin og databvase navn får jeg samme feilen.

 

begge pc'ene kjører vista og SQL server 2005. jeg finner den andre pc'en på nettverket ved bruk av explorer.

 

er det noe jeg har glemt / gjort feil?

Lenke til kommentar
Videoannonse
Annonse
prøver jeg å legge til en data source manuelt visual studio, med samme datamaskin og databvase navn får jeg samme feilen.

 

begge pc'ene kjører vista og SQL server 2005. jeg finner den andre pc'en på nettverket ved bruk av explorer.

 

er det noe jeg har glemt / gjort feil?

 

Jepp.

Først må du enable sql serveren din remote connections som kaffenils sier( http://support.microsoft.com/kb/914277 ), deretter bør du endre connectionstringen din.

Du prøver nå å koble deg til via integrated security. Dvs at brukeren som kjører applikasjonen din prøver å koble seg til databasen, og databasen som kjører på en annen maskin aner ingenting om denne brukeren, og kommer til å avvise den.

 

1. Du må lage en ny bruker på serveren din der databasen kjører(ettersom du ikke kjører i et domene).

2.legge denne brukeren til med riktige rettigheter til databasen din.

3. tilslutt legge denne til i connectionstringen din.

 

Connectionstringen din skal se noe ut som:

Server=Server=KIM-PC\SQLEXPRESS;Database=nytest;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

 

i myUsername står den nye brukeren som du lagde på databaseserveren.

 

Du burde og selvsagt legge stringen til i webconfig filen din, og lese denne ut via ConnectionManager, men det kan du ta etter at du har fått dette til å funke først!

 

Lykke til:-)

Lenke til kommentar
prøver jeg å legge til en data source manuelt visual studio, med samme datamaskin og databvase navn får jeg samme feilen.

 

begge pc'ene kjører vista og SQL server 2005. jeg finner den andre pc'en på nettverket ved bruk av explorer.

 

er det noe jeg har glemt / gjort feil?

 

Jepp.

Først må du enable sql serveren din remote connections som kaffenils sier( http://support.microsoft.com/kb/914277 ), deretter bør du endre connectionstringen din.

Du prøver nå å koble deg til via integrated security. Dvs at brukeren som kjører applikasjonen din prøver å koble seg til databasen, og databasen som kjører på en annen maskin aner ingenting om denne brukeren, og kommer til å avvise den.

 

1. Du må lage en ny bruker på serveren din der databasen kjører(ettersom du ikke kjører i et domene).

2.legge denne brukeren til med riktige rettigheter til databasen din.

3. tilslutt legge denne til i connectionstringen din.

 

Connectionstringen din skal se noe ut som:

Server=Server=KIM-PC\SQLEXPRESS;Database=nytest;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

 

i myUsername står den nye brukeren som du lagde på databaseserveren.

 

Du burde og selvsagt legge stringen til i webconfig filen din, og lese denne ut via ConnectionManager, men det kan du ta etter at du har fått dette til å funke først!

 

Lykke til:-)

Lenke til kommentar
1. Du må lage en ny bruker på serveren din der databasen kjører(ettersom du ikke kjører i et domene).

2.legge denne brukeren til med riktige rettigheter til databasen din.

3. tilslutt legge denne til i connectionstringen din.

 

Connectionstringen din skal se noe ut som:

Server=Server=KIM-PC\SQLEXPRESS;Database=nytest;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

 

i myUsername står den nye brukeren som du lagde på databaseserveren.

 

er ikke helt proff på dette, så bare være sikker på at jeg har forstått riktig:

 

1. jeg må lage en bruker på server maskinen som kjører sql server/Databasen

(må jeg lage ny eller bruker eller kan jeg bruke den allerede eksisterende brukere? ble usikker siden du spesifiserte at jeg måtte lage ny)

2. hvilke type rettigheter? i windows-kontrollpanel->>, eller snakker vi sql config?

3. kan myPassword være tom? eller må det være et passord?

Lenke til kommentar
er ikke helt proff på dette, så bare være sikker på at jeg har forstått riktig:

 

Ikke lett første gang man skal gjør ting. Men bare prøv å tenk gjennom stegene, så ordner det seg etterhvert:-)

 

1. jeg må lage en bruker på server maskinen som kjører sql server/Databasen

(må jeg lage ny eller bruker eller kan jeg bruke den allerede eksisterende brukere? ble usikker siden du spesifiserte at jeg måtte lage ny)

2. hvilke type rettigheter? i windows-kontrollpanel->>, eller snakker vi sql config?

3. kan myPassword være tom? eller må det være et passord?

 

1. Nei, du trenger ikke lage en ny bruker på maskinen som sql serveren kjører på dersom du allerede har en bruker der. Det viktige er at du har en bruker på hver boks/maskin.

 

2. Nei, nå snakker vi database rettigheter. Du må inn i SQL Server Management Studio>Databases>nytest>Security>Logins>newlogins, og legge til brukeren der. Der styrer du og rettighetene denne brukeren skal ha på sqlserveren. Hva han trenger er litt avhengig av om programmet ditt bare leser, eller om den og skriver til databasen. Gi den db.Owner du, så har du hvertfall nok rettigheter. Du må og legge til brukeren din til Security på selve databaseserveren(SQL Server Management Studio>Databases>Security), ellers vil ikke brukeren få logget seg inn på serveren. Brukeren din må altså gis tilatelse både på sqlserveren, og på sql databasen(nytest) explisit. Og ikke glem å les linken jeg sente deg sist, den feilmeldingen det referes til der er akkurat den samme du fikk, bare på engelsk.

 

3. Passordet ditt kan ikke være tomt.

 

Grunnen til at du har sluppet å tenke på dette når du hadde programmet ditt, og sql serveren på samme maskin var at du kjørte med en Admin bruker, og Admin brukere har alle rettigheter på den maskinen den kjører på, inkludert db.owner...:-)

 

Ser at jeg skrev litt feil på conenction stringen jeg sendte deg i sted, så prøver igjen:

 

Server=KIM-PC\SQLEXPRESS;Database=nytest;User ID=myUsername;Password=myPassword;Trusted_Connection=False;

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...