powered by simpleCommunicator - 2.0.60     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Зачем нужны схемы БД ?
25 сообщений из 35, страница 1 из 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
25 сообщений из 35, страница 1 из 2
Форумы / Microsoft SQL Server [игнор отключен] [закрыт для гостей] / Зачем нужны схемы БД ?
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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