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