Just nu i M3-nätverket
Gå till innehåll

Får ingen koppling till databas


~Helén~

Rekommendera Poster

Jag har sedan en tid installerat MS Visual C# 2008 Express Edition, MS Web Developer 2008 Express Edition & MS SQL Server 2008 R2. När jag efter en tid skulle göra en webbapplikation med databaskoppling så har det inte fungerat och jag har letat rätt många timmar, och även dagar på att kunna lösa detta, men utan framgång. Så nu vänder jag mig till er och hoppas någon vet nån råd.

 

När jag kör applikationen och denna försöker koppla sig till databasen så får jag svaret: Cannot open database "databasnamn" requested by the login. The login failed. Login failed for user 'hp\admin'.

Jag antar att det är någon rättighet som fattas, men ser inte vad som är felet. På databasen som jag försöker koppla mig till är hp/admin (alltså jag), ägare. På katalogen som databasen ligger i har hp/admin fulla rättigheter. Någon som vet vad som kan vara fel?

Länk till kommentar
Dela på andra webbplatser

Hur ser kopplingssträngen ut? Förslagsvis använder du även ett nyskapat SQL-login (och inte Windows-inloggning). Att logga in med datorns admin-konto är inte att rekommendera (vilket det ser ut som du gjort)

Länk till kommentar
Dela på andra webbplatser

Går jag in under security -> login -> hp\admin (i Sql Server Management Studio) så är hp\admin enabled ja. Däremot hittade jag nedanstående länk som beskriver en eventuell lösning på mitt problem, vilket jag förstås försökt att följa, men det går dessvärre inte. Tittar man på den beskrivning som visas på länken så står det fel info under "user mapping". Dels står dbo (istället för hp\admin) i de två fälten till höger i det översta fönstret, och i det nedre fönstret där man skulle se till att db_owner är ibockat så går det inte att göra ändringar då den är gråtonad. Jag lyckades tidigare dock att bocka i den där rutan genom att få hp\admin ifylld i övre delen, men då gick det inte att ok:a ändringarna utan fick felmeddelande om att dbo inte fick tas bort.

 

Länk om beskrivning:

Länk till kommentar
Dela på andra webbplatser

Anjuna Moon:

 

Nej jag har inte skapat något nytt konto utan kör på windows authentication.

Jag har provat några varianter på två olika connectionsstrings, bland annat:

string connstr = "workstation id=localhost; integrated security=SSPI ;initial catalog=databasNamn";

Med den ovan har det gått att köra igång applikationen med, men med det felmddelande jag visade tidigare.

Har även testat:

string connstr = "Data Source=.SQLEXPRESS; Initial Catalog=databasNamn; Integrated Security=True";

Detta är den connectionstring som visas under properties på databasen, så den borde ju vara rätt. Men med denna fick jag nu felmeddelande:

 

Ett nätverksrelaterat eller instansspecifikt fel uppstod när en anslutning skulle upprättas till SQL Server. Servern hittades inte eller var inte tillgänglig. Kontrollera att instansnamnet är korrekt och att SQL Server är konfigurerad till att tillåta fjärranslutningar. (provider: Namngivna rör-provider, error: 40 - Det gick inte att öppna en anslutning till SQL Server)

Länk till kommentar
Dela på andra webbplatser

Pröva med en backslash innan serverinstansnamnet (samt ett @ innan strängen)

 

string connstr = @"Data Source=.\SQLEXPRESS; Initial Catalog=databasNamn; Integrated Security=True"; 

 

alternativt ange servernamnet också

 

string connstr = @"Data Source=ServerNamn\SQLEXPRESS; Initial Catalog=databasNamn; Integrated Security=True"; 

 

Har du ställt in SQL Server att hantera Mixed Mode-inloggning?

 

Du kan även pröva att ge access till kontot via SQL Servers Command-line

http://forums.asp.net/p/905865/1836699.aspx

Länk till kommentar
Dela på andra webbplatser

Förresten, du skrev att det var SQL Server 2008 R2 du använde, men sen försöker du med SQL Server Express. Vilken är det egentligen du använder?

Oavsett vilket, kontrollera att instansnamnet är korrekt (ex. i Administrationsverktyg->Tjänster). Den kanske fått något annat namn än defaultnamnet (kan hända ibland om man installerat flera versioner till exempel)

Länk till kommentar
Dela på andra webbplatser

Pröva med en backslash innan serverinstansnamnet (samt ett @ innan strängen)

 

string connstr = @"Data Source=.\SQLEXPRESS; Initial Catalog=databasNamn; Integrated Security=True"; 

 

Det där tipset var guld värt, det löste problemet. Att det var ett så enkelt fel. Provade med backslash tidigare men det ville inte applikationen ta då. Gjorde väl något fel.

 

Förresten, du skrev att det var SQL Server 2008 R2 du använde, men sen försöker du med SQL Server Express. Vilken är det egentligen du använder?

Oavsett vilket, kontrollera att instansnamnet är korrekt (ex. i Administrationsverktyg->Tjänster). Den kanske fått något annat namn än defaultnamnet (kan hända ibland om man installerat flera versioner till exempel)

 

Jadu bra fråga, jag vet inte riktigt vad som står för vad. Går jag in på MS Sql Server Management Studio, som ligger under MS SQL Server 2008 R2, så står hp\SqlServerExpress överst som Server. Under denna ligger alltså databasen jag använder. Men kollar jag under Meny->About -> Help så är det MS SQL Server 2008 R2 somsagt. Att jag angav SQLEXPRESS är för att den kom upp som server på kopplingen till databasen när man tittar under properties, och även när man försöker lägga in en databaskoppling via Tools->Connect to database. Men databasen ligger och är somsagt skapad i MS SQL Server 2008 R2.Hur det hänger ihop vet jag inte.

 

Stort tack återigen för att du löste problemet! :thumbsup: Äntligen slipper jag den frustrationen.

Länk till kommentar
Dela på andra webbplatser

Trevligt att det inte var svårare än så. Du kanske glömde @-tecknet när du försökte med "\" i strängen tidigare?

 

Det enklaste sättet att avgöra vilken version du har är hur mycket du betalade för den, Express=gratis, fullversion=dyr =)

Länk till kommentar
Dela på andra webbplatser

Arkiverat

Det här ämnet är nu arkiverat och är stängt för ytterligare svar.

×
×
  • Skapa nytt...