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