Мы просто скопировали базу данных 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