"Benutzer-Standarddatenbank kann nicht geöffnet werden. Anmeldung fehlgeschlagen. "Nach der Installation von SQL Server Management Studio Express

8

Ich habe eine Datenbank in einer lokalen Datei, die von einem Programm verwendet wird. Das Programm hat eingeschränkte Funktionalität und ich musste einige schnelle Abfragen ausführen. Ich habe SQL Server Management Studio Express 2005 (SSMSE) installiert, mit der SQL Server-Instanz verbunden, die Datenbankdatei angefügt und die Abfragen ausgeführt. Jetzt verbindet sich das ursprüngliche Programm nicht mehr mit der Datenbank. Ich erhalte den Fehler:

  

Benutzer-Standarddatenbank kann nicht geöffnet werden. Anmeldung fehlgeschlagen. Anmeldung fehlgeschlagen für Benutzer 'MyComputer \ MyUserName'.

Ich bin zurück in SSMSE gegangen und habe versucht, die Standarddatenbank einzustellen. Ich habe Security, Logins, BUILTIN \ Administrators und BUILTIN \ Users geöffnet. Unter Allgemein habe ich die Standarddatenbank für die Datenbank des Programms festgelegt. Unter Benutzerzuordnungen habe ich sichergestellt, dass die Datenbank aktiviert ist und dass db_datareader und db_datawriter angekreuzt sind.

Das Programm verwendet die Verbindungszeichenfolge:

  

Server = (lokal) \ Instanz; AttachDbFilename = C: \ PathToDatabase \ Database.mdf; Integrierte Sicherheit = Wahr; Benutzerinstanz = Wahr;

Ich weiß alles über Datenbankverwaltung. Was fehlt mir noch?

    
Hand-E-Food 16.12.2011, 01:21
quelle

7 Antworten

6

Versuchen Sie zunächst, Ihr Problem zu isolieren:

  1. Erstellen Sie eine Sicherungskopie der Datei! Einige der folgenden Schritte können unter bestimmten Umständen dazu führen, dass die Datei verschwindet.
  2. Sind Sie sicher, dass Sie sich über Management Studio mit der gleichen Instanz verbinden wie das Programm?
  3. Versuchen Sie nach Möglichkeit, die Instanz herunterzufahren, die Sie nicht verwenden möchten.
  4. Legen Sie die Standarddatenbank des Benutzers als Master fest und versuchen Sie, die Anmeldung des Programms vorzunehmen.
  5. Versuchen Sie, sich als Benutzer über Management Studio anzumelden - da Sie die Sicherheit integriert haben, sollten Sie Management Studio als Benutzer des Programms öffnen.
  6. Verwenden Sie "Benutzerinstanzen" - vielleicht ohne es zu wissen? Wenn dies der Fall ist, kann dies hilfreich sein: Ссылка

Ich habe nicht viel damit gearbeitet, dass Dateien an die Art und Weise angehängt werden, wie Ihr Programm es tut - aber Sie schreiben, dass Sie die Datenbank auch im Management Studio angehängt haben. Haben Sie versucht, es vor dem Ausführen des Programms zu entfernen? Vielleicht konkurrieren das Management Studio und Ihr Programm um den exklusiven Zugriff auf die MDF-Datei?

BEARBEITEN: Ich habe Punkt 6 oben hinzugefügt - das ist neu in meiner eigenen TODO-Liste, wenn diese Art der Anmeldung fehlgeschlagen ist. Aber es klingt viel wie das, was Sie gerade erleben.

EDIT2: In der ersten Bearbeitung wurde ein neuer Eintrag zur Liste hinzugefügt. Also stimmen die Zahlen in den Kommentaren nicht mit den Zahlen in der Antwort überein.

    
user806549 20.12.2011, 23:20
quelle
4

Dies beantwortet möglicherweise nicht Ihre Frage speziell, aber es wird anderen mit ähnlichem Problem helfen

Das Problem ist, dass Ihr Benutzer standardmäßig auf eine Datenbank zugreift, auf die aus irgendeinem Grund nicht zugegriffen werden kann (kann umbenannt, entfernt, beschädigt oder ... sein). Um das Problem zu lösen, folgen Sie einfach den folgenden Anweisungen

  1. Versuchen Sie, sich erneut auf der Anmeldeseite einzuloggen, da andere Tabs ausgewählt sind "Verbindungseigenschaften"
  2. Suchen Sie unter der Registerkarte "Connect to database" und wählen Sie eine vorhandene Datenbank aus, auf die Sie Zugriff haben, wie tempdb oder master
  3. Sobald Sie mit der SQL Server-Instanz verbunden sind, führen Sie die folgende TSQL aus, um der Anmeldung eine neue Standarddatenbank zuzuweisen.

    %Vor%

Alternativ können Sie nach der Verbindung Ihren Standard-Datenbanknamen über die Benutzeroberfläche zum Master ändern

Artikel entnommen aus: Ссылка

    
Kiarash 18.04.2016 23:56
quelle
2
Ich habe es endlich herausgefunden, und meine Situation ist anders als alle anderen, über die ich heute Abend gelesen habe.

Ich hatte meine Datenbank von einem Backup wiederhergestellt. Ich wusste, dass es einen bestimmten Login-Benutzer gab, den ich benutzt hatte, also habe ich diesen Benutzer in SSMS erstellt. Es gab jedoch bereits einen Benutzer mit diesem Namen in der Datenbank, die mit dem Backup gekommen war.

Da ich so viel versucht habe, das Problem zu beheben, konnte ich den Benutzer unter der DB nicht einfach löschen. Ich habe die Datenbank gelöscht und erneut wiederhergestellt. Dann:

  1. Löschen Sie den Benutzer unter den Datenbanken- & gt; [Meine Datenbank] - & gt; Benutzer
  2. Erstellen Sie den Benutzer erneut in Security- & gt; Logins (nicht unter Ihrer DB, obwohl das wahrscheinlich auch funktioniert.
  3. Gehe zum neu erstellten Benutzer. Wählen Sie Eigenschaften. Weisen Sie dann unter Benutzerzuordnungen darauf hin, dass Ihre Datenbank als Standard festgelegt wird. Geben Sie ihm Lese- und Schreibzugriff.

Zusammenfassung: Ich hatte zwei Benutzer. Eine, die mit der DB kam, und eine, die ich erstellt hatte. Entfernen Sie das mit der DB gelieferte und erstellen Sie Ihr eigenes.

    
DustinA 20.02.2015 04:32
quelle
0

Ich hatte auch das gleiche Problem, es stellte sich heraus, dass ich versuchte, auf die eingebauten Mitgliedschaftsklassen zuzugreifen (in einer Ansicht) und dass .Net versuchte, die Datenbank im Ordner App_Data zu erstellen:

%Vor%

Dies löst aus, dass das System versucht, eine Datenbank zu erstellen, die auf dem eingebauten Mitgliedschaftssystem basiert, was möglicherweise nicht die Art ist, wie Ihr System eingerichtet wird.

    
Terry Kernan 11.06.2015 17:09
quelle
0

Ich hatte ein ähnliches Problem musste einfach SQL Express Utility herunterladen, die in der Lage ist, User Instances zu starten. SSEUtil ist ein Tool, das vom Visual Studio-Team geschrieben wurde, um bei der Behandlung von Benutzerinstanzproblemen behilflich zu sein. Weitere Informationen dazu finden Sie in der Readme-Datei, die mit dem Dienstprogramm installiert wird. Ссылка .

Hoffe, das wird helfen.

    
Benson Makoni 30.03.2016 12:29
quelle
0

In meinem Fall musste ich den Pfad "connect to any database" einstellen:

Gehen Sie in Ihrer Instanz zu Security und dann zu Logins .

Rechtsklicken Sie dort, Sie werden properties sehen und Sie sollten auf Securables klicken.

Dort gibt es die Möglichkeit, sich mit jeder Datenbank zu verbinden.

    
wookee80 07.03.2017 14:04
quelle
0

Dieses Problem hat sich für mich gezeigt, als ich meine Standard-DB offline nahm. Das Nächste, was ich weiß, ich konnte mich nicht anmelden. Wechseln Sie zur Registerkarte Verbindungseigenschaften, und wählen Sie das Dropdown-Menü aus, um die Datenbank zu ändern, mit der ich eine Verbindung herstellen möchte.

Es hat mich sofort hereingelassen, nachdem ich master manuell als die db eingegeben habe, mit der ich mich verbinden wollte (auf der Registerkarte Verbindungseigenschaften).

    
Mike Cheel 06.07.2017 18:07
quelle