powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Зачем нужны схемы БД ?
35 сообщений из 35, показаны все 2 страниц
Зачем нужны схемы БД ?
    #35807068
ЗвездаYo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Не пинайте ногами, но ответа на вопрос не смог найти пересмотрев не один десяток книг по MS SQL (работаю с 2008) и форум.
Все ограничиваются историей про то, что раньше схема была тождественна имени пользователи и что схемы можно использовать для разграничения доступа и что за схемами большое и светлое будущее. Никаких рекомендаций связанных с выбором схем при проектировании БД не обнаружил.

Например: при проектировании БД торговой информационной системы можно схемой разделить таблицы по типам : справочники, регистры, журналы документов, табличные части документов...
А можно по смыслу : управление ассортиментом, товародвижение, ценообразование ...
А может они вообще не нужны - только кола больше становится ?

Какие будут рекомендации ?
Есть умные книжки ? Читать умею.

Модератор: Тема перенесена из форума "Проектирование БД".
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35807373
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Схемы нужны прежде всего для управления правами доступа. А не для типизации.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35807383
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35807404
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир М.А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.
Можно. Аналогия приблизительна как зачем view-ы, если есть select-ы.
Схема нужна, чтобы отделить владение объекта от конкретного пользователя
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35807412
Фотография alexeyvg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир М.А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.Может, можно провести такую аналогию:
Роли - это группы пользователей.
Схемы - это группы ресурсов.

Честно говоря, сам никогда схемами не пользовался.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35807418
--__Александр__--
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Владимир М.А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.
Схемы дают твоей машине дополнительный руль. Можно в принципе и без них, но сними удобнее.
Еще схемы играют важную роль в цепочках владения.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35807491
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
alexeyvgВладимир М.А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.Может, можно провести такую аналогию:
Роли - это группы пользователей.
Схемы - это группы ресурсов.

Честно говоря, сам никогда схемами не пользовался.
Самое смешное, что сам я пользуюсь схемами... утилитарно, так сказать.
Есть схема test, в которой создаются объекты, тестируются и после успешного результата переносятся в схему dbo.
Но это разделение ресурсов, а не доступа.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35807500
Владимир М.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хотя конечно назначая права на схемы различным пользователям можно очень удобно разруливать эти права... Я думаю, что понимание придёт после того, как испытаешь это на практике.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35807560
Sim.On
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Схема в MSSQL Server 2005, 2008 - пространство имен, которому можно дать определенные разрешения. Смотрите первоисточник .
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #35808100
ЗвездаYo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Владимир М.Хотя конечно назначая права на схемы различным пользователям можно очень удобно разруливать эти права... Я думаю, что понимание придёт после того, как испытаешь это на практике.
Т.е. если я правильно понял, то желательно, чтобы схемы отображала реальное "жизненное" разделение возможных служебных обязанностей пользователей.
Получается правильнее делить по смыслу : управление ассортиментом, товародвижение, ценообразование ...
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36375332
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот прочитал и ничего не понял... тоже порылся, поискал, но так и не нашел зачем эти схемы нужны, особенно в sql server 2008, ими могут владеть пользователи и они имеют список пользователей, притом для чего они вообще не ясно... есть роли, в которых можно манипулировать данными раздавать права, зачем тогда схемы? вообще хоть один пример приведите где их применяют?
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36375554
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandistВот прочитал и ничего не понял... тоже порылся, поискал, но так и не нашел зачем эти схемы нужны, особенно в sql server 2008, ими могут владеть пользователи и они имеют список пользователей, притом для чего они вообще не ясно... есть роли, в которых можно манипулировать данными раздавать права, зачем тогда схемы? вообще хоть один пример приведите где их применяют?
А теперь подумайте, что должно произойти с объектом, которым владеет пользователь, при удалении этого пользователя из базы ?
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36376787
Guest000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Glory, неужели аннигилироваться?
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36377383
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И что теперь, если я программист и создал валом ХП, теперь меня увольняют и удаляют логин, следовательно все мои ХП увольняются со мной? :-)
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36377402
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandistИ что теперь, если я программист и создал валом ХП, теперь меня увольняют и удаляют логин, следовательно все мои ХП увольняются со мной? :-)
По вашей логике - да
По логике со схемой данных - нет, у схемы меняется владелец
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36377404
Winnipuh
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandistИ что теперь, если я программист и создал валом ХП, теперь меня увольняют и удаляют логин, следовательно все мои ХП увольняются со мной? :-)

это и есть мечта девелопера
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36377408
Sandist
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Короче есть реальный ответ чем что можно сделать схемой и нельзя ролью?
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36377411
`ё
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
а теперь представь что тебе надо написать процедуру которая ведет себя по разному для разных пользователей... при участие схем это разруливается на уровне системы, а без схем - только на уровне процедуры..
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36377424
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SandistКороче есть реальный ответ чем что можно сделать схемой и нельзя ролью?
Нельзя удалить пользователя, если он владеет объектом
Схема - это контейнер для объектов
Роль - это контейнер для пользователей
Как вы, например, будете давать права на объекты относящиеся к проекту "Отдел кадров" ?
Будете каждый раз сверять список этих объектов в свойствах роли и на бумажке ?
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36377488
Фотография Wizandr
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlorySandistКороче есть реальный ответ чем что можно сделать схемой и нельзя ролью?
Нельзя удалить пользователя, если он владеет объектом
Схема - это контейнер для объектов
Роль - это контейнер для пользователей

Как вы, например, будете давать права на объекты относящиеся к проекту "Отдел кадров" ?
Будете каждый раз сверять список этих объектов в свойствах роли и на бумажке ?
Однако пользователь может входить одновременно в разные роли, а объект только в одну схему
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36377498
Glory
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
WizandrGlorySandistКороче есть реальный ответ чем что можно сделать схемой и нельзя ролью?
Нельзя удалить пользователя, если он владеет объектом
Схема - это контейнер для объектов
Роль - это контейнер для пользователей

Как вы, например, будете давать права на объекты относящиеся к проекту "Отдел кадров" ?
Будете каждый раз сверять список этих объектов в свойствах роли и на бумажке ?
Однако пользователь может входить одновременно в разные роли, а объект только в одну схему
А в схему могут входить множество типов объектов, а роль - всего два. И что дальше ?
Вы пытаетесь сравнивать контейнеры разных типов
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36382014
Guest000
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GlorySandistКороче есть реальный ответ чем что можно сделать схемой и нельзя ролью?
Нельзя удалить пользователя, если он владеет объектом
Схема - это контейнер для объектов
Роль - это контейнер для пользователей
Как вы, например, будете давать права на объекты относящиеся к проекту "Отдел кадров" ?
Будете каждый раз сверять список этих объектов в свойствах роли и на бумажке ?
А если, например, таблица бух.платежи нужна еще и финансистам, а иногда и директору, а не только бухгалтерам?
Все равно по бумажке...
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36382246
SoftRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
По-моему, логическая цепочка, обуславливающая присутствие схем в MS SQL такова:

1. Изначальный (до SQL Server 2005) постулат о наименовании объектов в виде:
[DatabaseServer].[DatabaseName].[ObjectOwner].[DatabaseObject]
причем - ObjectOwner = пользователь базы (database user).

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

2. Для 2005-го сервера идеологию "владельца - пользователя" расширили до "схемы" - самостоятельной сущности, грубо говоря "группы объектов", которая в свою очередь имеет владельца. Обходится недостаток жесткой привязки имени объекта к владельцу объекта - пользователю базы (владелец схемы может быть сменен и после этого удален), появляются некоторые (не совсем критичные, на мой взгляд) теоретические удобности (разбиение объектов по схемам, назначение прав "кучей" - на все объекты, входящие в схему). Главное - сохраняется правило наименования объектов, что позволяет достигнуть более-менее безболезненного перехода с предыдущих версий.

Мое мнение - главная необходимость наличия схем - в совместимости с предыдущими версиями.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36382300
iap
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoftRainПо-моему, логическая цепочка, обуславливающая присутствие схем в MS SQL такова:

1. Изначальный (до SQL Server 2005) постулат о наименовании объектов в виде:
[DatabaseServer].[DatabaseName].[ObjectOwner].[DatabaseObject]
причем - ObjectOwner = пользователь базы (database user).

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

2. Для 2005-го сервера идеологию "владельца - пользователя" расширили до "схемы" - самостоятельной сущности, грубо говоря "группы объектов", которая в свою очередь имеет владельца. Обходится недостаток жесткой привязки имени объекта к владельцу объекта - пользователю базы (владелец схемы может быть сменен и после этого удален), появляются некоторые (не совсем критичные, на мой взгляд) теоретические удобности (разбиение объектов по схемам, назначение прав "кучей" - на все объекты, входящие в схему). Главное - сохраняется правило наименования объектов, что позволяет достигнуть более-менее безболезненного перехода с предыдущих версий.

Мое мнение - главная необходимость наличия схем - в совместимости с предыдущими версиями.Мне кажется, ошибочно рассматривать схему с точки зрения одной частной реализации SQL Server (фирмой Microsoft).
Дело в том, что схема - понятие, включённое (и давно) в стандарт SQL
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36382373
SoftRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
iapМне кажется, ошибочно рассматривать схему с точки зрения одной частной реализации SQL Server (фирмой Microsoft).
Дело в том, что схема - понятие, включённое (и давно) в стандарт SQL

Согласен, конечно, я не спорю, что схемы имеют теоретическое обоснование. Ведь и до 2005 их наличие, хотя и в неуклюжей реализации, было обусловлено (наверное как раз стандартами языка SQL).
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36382457
M0us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GloryСхемы нужны прежде всего для управления правами доступа. А не для типизации.

правильно. но если из молотка (sql 2000) сделать молоток, похожий на лопату (sql 2005/2008), то очень даже удобно и копать будет.

Glory
Как вы, например, будете давать права на объекты относящиеся к проекту "Отдел кадров" ?
Будете каждый раз сверять список этих объектов в свойствах роли и на бумажке ?

зачастую распределение прав более глубокое чтение/просмотр, поэтому сделать кого-то владельцем схемы маловато.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36382466
Excel
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Схема очень похожа на пространство имен в программировании.
Вы можете создать два объекта с одинаковым именем но в разных схемах.
Удобно групировать объекты, если есть понимание зачем вам это нужно.
Можно работать с группой объектов, например при нарезке прав.
Пример использования - схема sys.
Отделяет системные объекты от пользовательских.
Да и вам может понадобиться создать ещё один набор объектов с именами которые уже есть в этой же базе. Например одинаковые наборы таблиц для разных филлиалов.

Но в целом - похоже что это просто ещё одна степень свободы группировки, которую совсем необязательно применять, оссбенно если на уровне архитектуры приложения не понятно, зачем это нужно.

Рекомендаций, кроме как игнорировать до появления необходимости воспользоваться, нет :)
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36382976
SoftRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
M0us

зачастую распределение прав более глубокое чтение/просмотр, поэтому сделать кого-то владельцем схемы маловато.

Нет, ну на схему можно абсолютно все те же права, что и на объекты давать.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36383098
M0us
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
SoftRainM0us

зачастую распределение прав более глубокое чтение/просмотр, поэтому сделать кого-то владельцем схемы маловато.

Нет, ну на схему можно абсолютно все те же права, что и на объекты давать.

Да, наверно я со своей "колькольни" сужу. Просто когда вам в наследство достается не очень чистая БД (старые неиспользуемые объекты, таблицы, куча систем, обращающихся к БД тем или иным способом в режиме 24/7, различное клиентское ПО, куча левых грантов в том числе на table-objects), то вот так просто взять и раскидать все по схемам нереально :)
С момента перехода на 2005-й мы уже давно постепенно все чистим и систематизируем, переводим на разные схемы по мере возможности.

Хотя соглашусь, что проект "с нуля" будет отлично работать по схемам при грамотном проектировании.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #36384520
SoftRain
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
M0us
...
то вот так просто взять и раскидать все по схемам нереально :)

Хотя соглашусь, что проект "с нуля" будет отлично работать по схемам при грамотном проектировании.

Тоже так думаю, хотя может быть в теории и не так трудно раскидать существующую базу по схемам, честно говоря, не задумывался серьезно, какие последствия для проектов, написанных под единственной схемой "dbo" могут возникнуть, и оправданы ли в итоге будут полученные плюсы.
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Зачем нужны схемы БД ?
    #39859759
sql7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
понимаю что тема поднята из гроба. тем не менее.

думая про схему ее смысл пришла аналогия с папками

если роль аналогична группе пользователей то схема аналогична папке. выдавая пермишнс
на папку мы выдаем права доступа на все обьекты внутри папки.

что скажете.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #39859761
sql7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
отсюда вытекает ответ на вопрос " а смысл использования схемы?" такой же какой имеют
папки при организации доступа к файлам. и правилам разграничения доступа к файлам.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #39859762
sql7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
схема позволяет задать права доступа к группе обьектов непривязываясь к конкретным обьектам. мы выдаем права доступа к схеме. а потом привязывая обьект к схеме мы получаем на этот обьект нужные права.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #39859893
Фотография PsyMisha
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sql7,

Ну да, соглашусь.

Или, к примеру - DWH - различные схемы нужны, дабы отделять уровни пирога и модули, логически организовывать подсистемы БД, ну и управлять безопасностью.
К примеру - организуется схема [DataMart]., кладем в нее все витрины, - звезды-снежинки, и только она видна потребителю Хранилища - кубу или BI-приложению.
...
Рейтинг: 0 / 0
Зачем нужны схемы БД ?
    #39860138
sql7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
спасибо :)
...
Рейтинг: 0 / 0
35 сообщений из 35, показаны все 2 страниц
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Зачем нужны схемы БД ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]