Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
 Зачем нужны схемы БД ?  [new]
ЗвездаYo
Member

Откуда:
Сообщений: 18
Не пинайте ногами, но ответа на вопрос не смог найти пересмотрев не один десяток книг по MS SQL (работаю с 2008) и форум. Все ограничиваются историей про то, что раньше схема была тождественна имени пользователи и что схемы можно использовать для разграничения доступа и что за схемами большое и светлое будущее. Никаких рекомендаций связанных с выбором схем при проектировании БД не обнаружил. Например: при проектировании БД торговой информационной системы можно схемой разделить таблицы по типам : справочники, регистры, журналы документов, табличные части документов... А можно по смыслу : управление ассортиментом, товародвижение, ценообразование ... А может они вообще не нужны - только кола больше становится ? Какие будут рекомендации ? Есть умные книжки ? Читать умею.
Модератор: Тема перенесена из форума "Проектирование БД".
10 фев 09, 01:25    [6798656]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Glory
Member

Откуда:
Сообщений: 104764
Схемы нужны прежде всего для управления правами доступа. А не для типизации.
10 фев 09, 10:20    [6799237]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Владимир М.
Member

Откуда: Москва
Сообщений: 4990
А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.
10 фев 09, 10:24    [6799273]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Glory
Member

Откуда:
Сообщений: 104764
Владимир М.
А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.

Можно. Аналогия приблизительна как зачем view-ы, если есть select-ы.
Схема нужна, чтобы отделить владение объекта от конкретного пользователя
10 фев 09, 10:30    [6799323]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
alexeyvg
Member

Откуда: Moscow
Сообщений: 28996
Владимир М.
А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.
Может, можно провести такую аналогию:
Роли - это группы пользователей.
Схемы - это группы ресурсов.

Честно говоря, сам никогда схемами не пользовался.
10 фев 09, 10:33    [6799346]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
--__Александр__--
Member

Откуда:
Сообщений: 2635
Владимир М.
А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.

Схемы дают твоей машине дополнительный руль. Можно в принципе и без них, но сними удобнее.
Еще схемы играют важную роль в цепочках владения.
10 фев 09, 10:34    [6799362]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Владимир М.
Member

Откуда: Москва
Сообщений: 4990
alexeyvg
Владимир М.
А мне вот тоже не совсем понятно... А роли для чего? Можно и ими рулить права.
Может, можно провести такую аналогию:
Роли - это группы пользователей.
Схемы - это группы ресурсов.

Честно говоря, сам никогда схемами не пользовался.

Самое смешное, что сам я пользуюсь схемами... утилитарно, так сказать.
Есть схема test, в которой создаются объекты, тестируются и после успешного результата переносятся в схему dbo.
Но это разделение ресурсов, а не доступа.
10 фев 09, 10:53    [6799543]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Владимир М.
Member

Откуда: Москва
Сообщений: 4990
Хотя конечно назначая права на схемы различным пользователям можно очень удобно разруливать эти права... Я думаю, что понимание придёт после того, как испытаешь это на практике.
10 фев 09, 10:56    [6799564]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Sim.On
Member

Откуда: Ростов-на-Дону
Сообщений: 92
Схема в MSSQL Server 2005, 2008 - пространство имен, которому можно дать определенные разрешения. Смотрите первоисточник.
10 фев 09, 11:18    [6799733]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
ЗвездаYo
Member

Откуда:
Сообщений: 18
Владимир М.
Хотя конечно назначая права на схемы различным пользователям можно очень удобно разруливать эти права... Я думаю, что понимание придёт после того, как испытаешь это на практике.

Т.е. если я правильно понял, то желательно, чтобы схемы отображала реальное "жизненное" разделение возможных служебных обязанностей пользователей.
Получается правильнее делить по смыслу : управление ассортиментом, товародвижение, ценообразование ...
10 фев 09, 13:36    [6800954]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Sandist
Member

Откуда:
Сообщений: 395
Вот прочитал и ничего не понял... тоже порылся, поискал, но так и не нашел зачем эти схемы нужны, особенно в sql server 2008, ими могут владеть пользователи и они имеют список пользователей, притом для чего они вообще не ясно... есть роли, в которых можно манипулировать данными раздавать права, зачем тогда схемы? вообще хоть один пример приведите где их применяют?
19 дек 09, 14:44    [8090338]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Glory
Member

Откуда:
Сообщений: 104764
Sandist
Вот прочитал и ничего не понял... тоже порылся, поискал, но так и не нашел зачем эти схемы нужны, особенно в sql server 2008, ими могут владеть пользователи и они имеют список пользователей, притом для чего они вообще не ясно... есть роли, в которых можно манипулировать данными раздавать права, зачем тогда схемы? вообще хоть один пример приведите где их применяют?

А теперь подумайте, что должно произойти с объектом, которым владеет пользователь, при удалении этого пользователя из базы ?
19 дек 09, 18:35    [8090750]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Guest000
Member

Откуда: Moscow
Сообщений: 341
Glory, неужели аннигилироваться?
21 дек 09, 00:00    [8093357]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Sandist
Member

Откуда:
Сообщений: 395
И что теперь, если я программист и создал валом ХП, теперь меня увольняют и удаляют логин, следовательно все мои ХП увольняются со мной? :-)
21 дек 09, 13:09    [8095126]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Glory
Member

Откуда:
Сообщений: 104764
Sandist
И что теперь, если я программист и создал валом ХП, теперь меня увольняют и удаляют логин, следовательно все мои ХП увольняются со мной? :-)

По вашей логике - да
По логике со схемой данных - нет, у схемы меняется владелец
21 дек 09, 13:17    [8095184]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Winnipuh
Member [заблокирован]

Откуда: Київ
Сообщений: 10436
Sandist
И что теперь, если я программист и создал валом ХП, теперь меня увольняют и удаляют логин, следовательно все мои ХП увольняются со мной? :-)


это и есть мечта девелопера
21 дек 09, 13:19    [8095193]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Sandist
Member

Откуда:
Сообщений: 395
Короче есть реальный ответ чем что можно сделать схемой и нельзя ролью?
21 дек 09, 13:20    [8095210]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]

Guest
а теперь представь что тебе надо написать процедуру которая ведет себя по разному для разных пользователей... при участие схем это разруливается на уровне системы, а без схем - только на уровне процедуры..
21 дек 09, 13:21    [8095216]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Glory
Member

Откуда:
Сообщений: 104764
Sandist
Короче есть реальный ответ чем что можно сделать схемой и нельзя ролью?

Нельзя удалить пользователя, если он владеет объектом
Схема - это контейнер для объектов
Роль - это контейнер для пользователей
Как вы, например, будете давать права на объекты относящиеся к проекту "Отдел кадров" ?
Будете каждый раз сверять список этих объектов в свойствах роли и на бумажке ?
21 дек 09, 13:26    [8095262]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Wizandr
Member

Откуда: Империя Добра
Сообщений: 36923
Glory
Sandist
Короче есть реальный ответ чем что можно сделать схемой и нельзя ролью?

Нельзя удалить пользователя, если он владеет объектом
Схема - это контейнер для объектов
Роль - это контейнер для пользователей

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

Однако пользователь может входить одновременно в разные роли, а объект только в одну схему
21 дек 09, 13:53    [8095456]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Glory
Member

Откуда:
Сообщений: 104764
Wizandr
Glory
Sandist
Короче есть реальный ответ чем что можно сделать схемой и нельзя ролью?

Нельзя удалить пользователя, если он владеет объектом
Схема - это контейнер для объектов
Роль - это контейнер для пользователей

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

Однако пользователь может входить одновременно в разные роли, а объект только в одну схему

А в схему могут входить множество типов объектов, а роль - всего два. И что дальше ?
Вы пытаетесь сравнивать контейнеры разных типов
21 дек 09, 13:56    [8095485]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
Guest000
Member

Откуда: Moscow
Сообщений: 341
Glory
Sandist
Короче есть реальный ответ чем что можно сделать схемой и нельзя ролью?

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

А если, например, таблица бух.платежи нужна еще и финансистам, а иногда и директору, а не только бухгалтерам?
Все равно по бумажке...
23 дек 09, 13:18    [8106975]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
SoftRain
Member

Откуда:
Сообщений: 92
По-моему, логическая цепочка, обуславливающая присутствие схем в MS SQL такова:

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

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

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

Мое мнение - главная необходимость наличия схем - в совместимости с предыдущими версиями.
23 дек 09, 14:36    [8107603]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
iap
Member

Откуда: Москва
Сообщений: 46833
SoftRain
По-моему, логическая цепочка, обуславливающая присутствие схем в MS SQL такова:

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

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

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

Мое мнение - главная необходимость наличия схем - в совместимости с предыдущими версиями.
Мне кажется, ошибочно рассматривать схему с точки зрения одной частной реализации SQL Server (фирмой Microsoft).
Дело в том, что схема - понятие, включённое (и давно) в стандарт SQL
23 дек 09, 14:51    [8107762]     Ответить | Цитировать Сообщить модератору
 Re: Зачем нужны схемы БД ?  [new]
SoftRain
Member

Откуда:
Сообщений: 92
iap
Мне кажется, ошибочно рассматривать схему с точки зрения одной частной реализации SQL Server (фирмой Microsoft).
Дело в том, что схема - понятие, включённое (и давно) в стандарт SQL


Согласен, конечно, я не спорю, что схемы имеют теоретическое обоснование. Ведь и до 2005 их наличие, хотя и в неуклюжей реализации, было обусловлено (наверное как раз стандартами языка SQL).
23 дек 09, 15:08    [8107965]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Microsoft SQL Server Ответить