Wir haben gerade eine SQL 2008-Datenbank zu Testzwecken auf einen anderen Server kopiert. Der typische Benutzer, der sich anmeldet, verwendet einige Objekte in einem bestimmten Schema. Angenommen, es ist Benutzer foo
und Schema bar
.
foo
Das Standardschema befindet sich bar
sowohl auf Instanz- als auch auf Datenbankebene. Wenn Sie sich foo
anmelden, können Sie jedoch keine Objekte im bar
Schema finden, ohne einen vollständig qualifizierten Namen zu verwenden.
Warum funktioniert das Standardschema hier nicht?
quelle
Ein weiteres Szenario, in dem dieses Problem auftreten kann (SQL 2008 R2) ...
Ich hatte einen Benutzer mit einem SQL-Authentifizierungs-Login verknüpft, den ich mit einem vorhandenen Schema verknüpfen wollte. Die Anmeldung hatte keine Systemadministratorrechte , daher hat die oben genannte Lösung nicht geholfen.
Ich fand schließlich heraus, dass die Datenbank immer noch im SQL 2000-Kompatibilitätsmodus konfiguriert war. Durch den Wechsel zu SQL 2005 wurde das Problem behoben.
quelle
Es wird davon ausgegangen, dass das Standardschema auf dem neuen Server dbo ist. Wenn das Schema nicht mit der Datenbank kopiert wurde.
Nicht die Lösung, aber vielleicht könnte dies helfen, wenn Sie sich den msdn-Artikel ansehen. http://msdn.microsoft.com/en-us/library/dd283095.aspx
quelle
foo
auf dem neuen Server konfiguriert . Es wird sowohl auf Instanzbenutzer- als auchbar
auf Datenbankbenutzerebene festgelegt.