Właśnie skopiowaliśmy bazę danych SQL 2008 na inny serwer w celach testowych. Typowy użytkownik logujący się korzysta z niektórych obiektów w określonym schemacie. Powiedzmy, że to użytkownik foo
i schemat bar
.
foo
Domyślny schemat znajduje bar
się zarówno na poziomie instancji, jak i bazy danych. Jednak po foo
zalogowaniu się nie może znaleźć żadnych obiektów w bar
schemacie bez użycia w pełni kwalifikowanej nazwy.
Dlaczego domyślny schemat nie działa tutaj?
źródło
Kolejny scenariusz, w którym może wystąpić ten problem (SQL 2008 R2) ...
Miałem użytkownika powiązanego z loginem do uwierzytelniania SQL, który próbowałem powiązać z istniejącym schematem. Login nie miał uprawnień administratora , więc powyższe rozwiązanie nie pomogło.
W końcu zorientowałem się, że baza danych jest nadal skonfigurowana w trybie zgodności z SQL 2000. Przejście na SQL 2005 rozwiązało problem.
źródło
Zakłada się, że domyślnym schematem na nowym serwerze jest dbo; Jeśli schemat nie został skopiowany z bazą danych.
Nie rozwiązanie, ale być może może to pomóc, po zapoznaniu się z artykułem msdn. http://msdn.microsoft.com/en-us/library/dd283095.aspx
źródło
foo
nowego serwera. Jest ustawionybar
zarówno na poziomie użytkownika instancji, jak i użytkownika bazy danych.