Я нашел схемы SQL Server очень запутанными. Может быть, вы, ребята, можете помочь мне разобраться в некоторой путанице. Я использую SQL Server 2008 Express и MS SQL Server 2008 Management Studio, но я думаю, что мои вопросы относятся к любой версии MS SQL Server 2008. Я экспериментировал с различными базами данных и разными экземплярами SQL Server на разных серверах. Например, я занимался какой-то работой на нашем корпоративном сервере, но я также довольно много работал с некоторыми базами данных на моем общем сервере веб-хостинга. Это может быть частью причины, по которой я вступил в замешательство.
1) Откуда появилось это имя схемы? Я подумал, что, когда я впервые начал работать с SQL Server несколько недель назад, я не видел никаких имен схем, присоединенных к именам таблиц. Я начал их видеть, когда база данных была импортирована или когда я использовал помощник по миграции MS Access. Можно ли вообще не использовать схемы? Не появляются ли они при некоторых обстоятельствах?
2) Имя схемы не "dbo" ? В недавнем проекте мои схемы отображались как MyLongUserName.tablename вместо dbo.tablename. Я смущен, почему иногда учетная запись пользователя по умолчанию используется для схемы dbo и в других случаях она назначается схеме с тем же именем, что и учетная запись пользователя. Имеет ли это какое-либо отношение к входу в систему с использованием проверки подлинности NT или проверки подлинности SQL Server?
3) Пользователь с именем dbo? Я не помню создания пользователя с именем dbo в базе данных, в которой я сейчас работаю, но я вижу его в списке пользователей. Должна ли существовать учетная запись пользователя "dbo" для существования схемы "dbo" ? Всегда ли имена пользователей и схем совпадают?
4) Использовать схемы или нет - Не можете ли вы их использовать? Используете ли вы схемы для небольших проектов, таких как две или три базы данных таблицы для базового веб-сайта? Можете ли вы полностью использовать схемы или просто использовать только схему "dbo" по умолчанию? Вы могли бы создать дополнительную схему и присвоить ей определенные права и учетные записи даже в очень маленьких проектах?
Я использую книгу Murach SQL Server 2008 для разработчиков, и я не нашел ее слишком полезной для устранения моей путаницы. Я читаю предложения типа: "Если вы не укажете схему при создании объектов, они будут сохранены в схеме по умолчанию." Подождите, как я узнаю, что "схема по умолчанию" является? Мы говорим о схеме по умолчанию для учетной записи пользователя или есть "схема по умолчанию" для каждой базы данных? Это всегда "дбо"? Почему при создании объектов он присваивает их схеме MyLongUserName вместо "dbo" ?