Назад | Перейти на главную страницу

Схема SQL Server 2008 по умолчанию не соблюдается?

Мы просто скопировали базу данных SQL 2008 на другой сервер в целях тестирования. Типичный пользователь, который входит в систему, использует некоторые объекты в определенной схеме. Допустим, это пользователь foo и схема bar.

fooсхема по умолчанию bar как на уровне экземпляра, так и на уровне базы данных. Однако когда foo журналы в нем не могут найти никаких объектов в bar схема без использования полного имени.

Почему здесь не работает схема по умолчанию?

Имеет пользователя foo сисадмин права на SQL Server? Потому что, если это так, то любому пользователю системного администратора по умолчанию будет назначена схема dbo, независимо от того, что установлено в свойствах пользователя для конкретной базы данных.

Итак, чтобы иметь схему по умолчанию, пользователю необходимо иметь роли базы данных, такие как db_owner, db_datawriter и так далее, вместо роли сервера sysadmin.

Скажите, если это не ваше дело.

Другой сценарий, в котором может возникнуть эта проблема (SQL 2008 R2) ...

У меня был пользователь, связанный с логином аутентификации SQL, который я пытался связать с существующей схемой. Логина не было сисадмин прав, поэтому приведенное выше решение не помогло.

В конце концов я понял, что база данных все еще была настроена в режиме совместимости с SQL 2000. Переход на SQL 2005 решил проблему.

Предполагается, что схема по умолчанию на новом сервере - dbo; Если схема не была скопирована с базой данных.

Не решение, но, возможно, это может помочь, просмотрев статью msdn. http://msdn.microsoft.com/en-us/library/dd283095.aspx