hawkmaster: Kein Login Fehler 4064 Cannot open default database

Hallo zusammen,
Ich habe einen SQL Server 2008 Express. Mit Windows Authentifizierung kann ich mich mit Management Studio anmelden.
Ich habe eine Datenbank "testdb". Dann habe ich unter Security--Logins einen Benutzer "MyTestUser" angelegt mit SQL Server Authentifizierung. Für diesen Benutzer habe ich ganz unten die Standard Datenbank "testdb" zugeordnert.

Wenn ich nun versuche mich an Management Studio nicht mit Windows Authentifizierung sondern mit SQL Server Authentifizierung und dem Benutzer
"MyTestUser" anzumelden, bekomme ich den Fehler.

SQL SERVER – Fix : Error: 4064 – Cannot open user default database. Login failed. Login failed for user

Es ist genau wie hier beschrieben.

http://blog.sqlauthority.com/2008/11/04/sql-server-fix-error-4064-cannot-open-user-default-database-login-failed-login-failed-for-user/

Leider klappt es bei mir auch nicht mit dem Tipp im Reiter Connection Properties die Default Datenbank "testdb" auszuwählen.

Ich habe jetzt schon stundenlang gegoogelt und komme einfach nicht weiter.
Hat hier noch jemand eine Idee?
vielen Dank und viele Grüße
hawk

  1. Hi,

    Für diesen Benutzer habe ich ganz unten die Standard Datenbank "testdb" zugeordnert.

    Wo bitte ist "ganz unten"? Du meinst "Default Database"?

    Die Fehlermeldung besagt, dass das Login kein Recht hat, sich mit der angegebenen Datenbank zu verbinden. merke Login != User

    Well, verbinde dich mittels SSMS oder sqlcmd mit der Instanz von SQL 2008 Express unter verwendung eines 'sa' accounts.

    Wechsle die Datenbank zu testdb (e.g. in SSMS per Maus oder durch
    use testdb;

    Dann fuehre aus:

    1. SELECT * FROM sys.database_principals und schau nach, ob dein "MyTestUser" im Ergebnis enthalten ist

    alternativ oder zusaetzlich kannst du auch ausfuehren:
    2) EXEC sp_helpuser 'MyTestUser'

    • Findest du MyTestUser nicht im Ergebnis von 1) oder 2)
    • oder resultiert 2) gar in einer Fehlermeldung

    ... dann ist MyTestUser zwar ein Login auf dem Server aber noch lange kein User in der entsprechenden DB

    Also solltest du mit einem admin konto in der DB "testdb" das Login "MyTestUser" als User registrieren: CREATE USER [MyTestUser] FOR LOGIN [MyTestUser]. Danach kannst du ihm dann die notwendigen Rechte und Rollen zuweisen.

    Zu beachten ist noch:

    • stelle sicher, dass ueberhaupt "mixed-mode authentication" for SQL 2008 Express aktiviert ist
    • das Login nicht zufaelligerweise noch gesperrt ist: ALTER LOGIN ... ENABLE
    • SQL Logins mit gleichem Namen aber auf verschiedenen Servern unterschiedliche SUSER_IDs bzw SIDs haben (koennen). D.h. wenn du deine DB von einem anderen Server genommen hast, wo schon mal "MyTestUser" existiert, dann gibt es mit 98%iger Sicherheit ein Mismatch hinsicht der dahinterliegenden SID. Stichwort: sp_change_users_login 'auto_fix', 'login name'

    Ciao, Frank