Domyślny schemat programu SQL Server 2008 nie jest przestrzegany?

9

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 fooi schemat bar.

fooDomyślny schemat znajduje barsię zarówno na poziomie instancji, jak i bazy danych. Jednak po foozalogowaniu się nie może znaleźć żadnych obiektów w barschemacie bez użycia w pełni kwalifikowanej nazwy.

Dlaczego domyślny schemat nie działa tutaj?

John Cromartie
źródło

Odpowiedzi:

13

Czy prawa administratora sysadmin foo na SQL Server? Ponieważ jeśli tak, to każdemu użytkownikowi sysadmin zostanie domyślnie przypisany schemat dbo , niezależnie od tego, co jest ustawione we właściwościach użytkownika dla konkretnej bazy danych.

Aby więc mieć domyślny schemat, użytkownik musi mieć role bazy danych, takie jak db_owner, db_datawriter itd., Zamiast sysadmin roli serwera.

Powiedz mi, czy to nie twoja sprawa.

yrushka
źródło
1
Jesteś bogiem i kłaniam się twojej wiedzy, byłem zaskoczony, aż wpadłem na to!
Jens,
1

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.

Rozczarowany
źródło
Dziwnie, wydaje mi się, że mam ten problem (użytkownik powiązany z loginem do uwierzytelniania SQL, który próbowałem powiązać z istniejącym schematem), z wyjątkiem tego, że mój poziom zgodności to „SQL Server 2016 (130)”
tbone
0

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

Nick O'Neil
źródło
Skonfigurowaliśmy domyślny schemat dla foonowego serwera. Jest ustawiony barzarówno na poziomie użytkownika instancji, jak i użytkownika bazy danych.
John Cromartie,