Gå til innhold

Får ikke koblet til database


Anbefalte innlegg

Kjører et lite nazistyre på serveren min, med minimalt med porter åpent.

 

Det står og kjører en Sql Server Express der, med en database. Bruker følgende connection string: "Data Source=localhost;Initial Catalog=Invoice;Persist Security Info=True;User ID=<user>;Password=<password>"

 

Denne bør da ikke ha noe med porter på nettverkskortet å gjøre, da det ikke skal bli noe innkommende trafikk her?

 

Feilmeldingen er i alle fall: "An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: Named Pipes Provider, error: 40 - Could not open a connection to SQL Server)"

 

brukeren jeg prøver å koble til med er db_owner, så det bør ikke være noe problem der. Noen forslag til neste skritt? Føler jeg står litt på bar bakke her :p

Lenke til kommentar
Videoannonse
Annonse

Problemet klienten bruker Named Pipes protokollen for å koble deg til SQL Serveren.

Det første du bør gjøre er å starte SQL Server Configuration Manager og forsikre deg om at TCP/IP protokollen er enablet. Det er også greit om Shared Memory er enablet hvis du logger deg på SQL Serveren lokalt. Named Pipes og VIA kan du disable.

For å tvinge klienten til å bruke TCPIP mot SQL Serveren skriver du "tcp:servernavn" og connection strengen for servername.

Lenke til kommentar

Når jeg bruker tcp:servernavn så fikk jeg denne morsomme feilmeldingen:

 

"An error has occurred while establishing a connection to the server. When connecting to SQL Server 2005, this failure may be caused by the fact that under the default settings SQL Server does not allow remote connections. (provider: TCP Provider, error: 0 - No connection could be made because the target machine actively refused it.)"

 

Kan jeg ikke bruke NamedPipes til å koble meg på lokalt?

Lenke til kommentar

Takker. Der fikk jeg i alle fall koblet til :)

 

Det som nå er det rare er at ingen av spørringene fungerer :p

 

"SELECT * FROM Employee" gir meg bare "Invalid object name 'Employee'."

 

Stod tidligere "SELECT * FROM dbo.Employee", men fikk strengt tatt samme feilmelding da.

Lenke til kommentar

Siden du kobler deg til en localhost vil det beste være å bruke Shared Memory, og det mener jeg skal være default når Data Source=localhost.

 

Prøv å disable alle andre protokoller enn Share Memory.

 

Du kan dessuten se hvilken protokoll som brukes av din connection ved å kjøre

select * from sys.dm_exec_connections

Finn din session_id og sjekk hav som står i kolonnen net_transport.

Lenke til kommentar

Hmm. Du er sikker på at det ikke er andre instanser av SQL Server innstallert?

 

Kjør select *

from sys.databases

. Finner du din database der?

Hvis ja, kjør

select db_name()

Er du i riktig database context?

Hvis ja, kjør

select * from sys.tables

Finner du tabellen din der?

Hvis ja, sjekk at brukeren har rettigheter til å lese fra tabellen. Er tabellen opprettet med skjema dbo som eier?

 

 

net_transport=Shared memory

 

Det er bra.

Lenke til kommentar

Da er du i feil database context. Er du sikker på at databasen heter Invoice? Det er ikke noe skriveleifer ute å går? F.eks. at det skal være Invoices eller noe i den duren.

 

Hvis du er helt sikker på at databasenavn er skrevet riktig så kan du gjøre to ting. Enten kjøre "USE Invoice" for å bytte databse context for din conenction, eller du kan sette default database til Invoice for brukeren enten i SSMS eller ved å kjøre

ALTER LOGIN login_name WITH DEFAULT_DATABASE=Invoice

Lenke til kommentar
...og selvfølgelig funket alt når jeg brukte manfred.Tabellnavn :p Hehe

 

Så et siste spørsmål før jeg slutter å mase: Er det en måte jeg kan gjøre slik at jeg slipper å skrive manfred.Tabellnavn, dbo.Tabellnavn eller lignende i alle spørringer?

 

Du må sørge for at databasebrukeresn default schema er manfred eller hva du nå bruker.

ALTER USER username WITH DEFAULT_SCHEMA=manfred

 

Hvis objektet ikke ligger i ditt default schema så må du spesifisere schema-navn i spørringene.

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