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

Откуда: Москва
Сообщений: 1613
Интересно:
1. Какая-нибудь СУБД может обеспечить контроль прав на уровне строк?
2. Кто-нибудь ЭТО пробовал ?
3. Если 1=нет, почему до сих пор ?

IMHO, Mon$te®
1 мар 06, 18:27    [2405602]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30253
Oracle, Linter. про другие не знаю. Эта фишка называется "мандатная защита".

http://www.oracle.com/ru/oramag/august2001/index.html?dev_tkyte.html

http://www.relex.ru/rus/products/linter/lin_access.php
1 мар 06, 18:37    [2405630]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30253
более правильная ссылка по Ораклу:
http://www.oracle.com/global/ru/oramag/august2001/dev_tkyte.html
1 мар 06, 18:40    [2405642]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
kdv
Member

Откуда: iBase.ru
Сообщений: 30253
кстати. в IB/FB это реализуется программно, через селективные хранимые процедуры, или самими приложениями. Существуют вариации от очень простых схем до супер-сложных.
Могу добавить только, что при программной реализации схема прав доступа ACL для РСУБД не годится - производительность стремится к нулю при увеличении записей-прав_доступа. Лично я остановился на расширенной стандартной юниксовой схеме (группы, пользователи, флаги доступа owner, group, all).
1 мар 06, 18:43    [2405649]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
vadiminfo
Member

Откуда: Обнинск
Сообщений: 4802
В Оракле пробовали и много раз. Не далее как сегодня правил ошибки парней - забыли юзера прописать и он ничего не видел. Управляется легко - проггеру мало что делать надо. Это там называют Тщательный контроль доступа. Есть как минимум с 8 версии, а счас уже 10 в ходу.
1 мар 06, 18:55    [2405686]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
pavelvp
Member

Откуда:
Сообщений: 673
kdv
Oracle, Linter. про другие не знаю. Эта фишка называется "мандатная защита".
Немного поправлю Диму.
Мандатная модель разграничения доступа реализована только в ЛИНТЕР. У Oracle сделано на логическом уровне, а мандатная защита подразумевает раздачу прав (назначение меток доступа) непосредственно данным, физически.
Модель защиты Oracle проще в администрировании, но она не решает некоторых проблем, AFAIK. Например, понижение секретности данных и всё с этим связанное, SYS видит всё и т.п.
В ЛИНТЕР реализована мандатная модель и доступ разграничивается вплоть до значений атрибутов, права доступа являются неотъемлемой частью самих данных (и субъектов, и объектов). Мандатная модель обеспечивает беспрецедентный уровень защиты, но сложнее в проектировании и администрировании БД.
1 мар 06, 20:21    [2405901]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
ggv
Member

Откуда:
Сообщений: 1810
DB2 Viper (ожидается в следующем квартале) имеет именно мандатную защиту, на уровне колонок, на уровне строк, ну и на уровне ячейки, права даются уровню иерархии, в который организованы пользователи/группы.
В бете уже работает, но релиза пока нет
1 мар 06, 20:41    [2405939]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
guest_20040621
Guest
> схема прав доступа ACL для РСУБД не годится

Еще как годится. ACL + rwe + контекст, где ACL - исключения.
1 мар 06, 21:05    [2405991]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
kdv
кстати. в IB/FB это реализуется программно, через селективные хранимые процедуры, или самими приложениями.

Хм. Я бы сказал, программно это реализуется почти где угодно. view еще никто не отменял.
1 мар 06, 21:06    [2405994]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
aZm
Member

Откуда:
Сообщений: 2357
softwarer
Хм. Я бы сказал, программно это реализуется почти где угодно. view еще никто не отменял.


цена больно высока получается... на каждую строку дернуть функу проверки...
1 мар 06, 22:56    [2406228]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
Хм. Это Вы про возврат отфильтрованной выборки из процедур или таки про view? Какой идиот будет строить view на проверяющих функциях?
2 мар 06, 01:38    [2406514]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
luser
Member [заблокирован]

Откуда: Пердыщево
Сообщений: 1246
А что это VFP молчит ? В VFP это же Елементарно.
2 мар 06, 03:37    [2406552]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
4d_monster
Member

Откуда: Москва
Сообщений: 1613
ммм...
Программно - не считается потому-что это не СУБД обеспечивает, а проггер.

Итак есть несколько лет в Оракле и судя по посту - работает
Есть в Линтер, правда без подтверждения постом
Вводится в DB2 Viper

Кто применял в Жизни пожалуйста если можно напишите ещё о :
- удобство использования
- скорость при малых списках ACL и при больших, а так же при разных количествах записей в таблицах
- как к этому у вас юзеры относятся

IMHO, Mon$te®
2 мар 06, 10:47    [2407328]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
ggv
Member

Откуда:
Сообщений: 1810
из того, что прочувствовал на бете Viper
1) удобно, посему как из командной строки :)
2) Overhead небольшой из-за продуманной архитектуры, и хорошо документирован, Так что можно сознательно чего-то выбрать
3) Юзверей небыло, а себя любимого пару раз по началу доступа к данным начисто лишил :)
Очень мощная вещь, отлично документирована, но сложная, и требует выделеного человека, обладающего знаниями. Потому как можно организовывать пользователей/группы в сложные наборы иерархий, легко потерять доступ при одном невнимательном шаге.
И если я не ошибаюсь, проходит российскую сертификацию.
2 мар 06, 11:08    [2407462]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
4d_monster
Итак есть несколько лет в Оракле и судя по посту - работает

Работает. Собственно даже применяется в OEBS (правда, в некоторых местах, видимо относительно новых), что показывает работоспособность в больших проектах.

4d_monster
- удобство использования

Удобнее, нежели достижение аналогичного результата целиком своими средствами. Поработать, конечно, все равно надо, но использовать стоит.

4d_monster
- скорость при малых списках ACL и при больших, а так же при разных количествах записей в таблицах

Хм. Запороть по скорости можно что угодно :) С точки зрения реализации фичи в оракле вопрос по-моему несколько бессмысленен.

Результат - не быстрее чем при отсутствии проверок и не медленнее, чем при аналогичной по качеству реализации руками. Примерно так.
2 мар 06, 11:33    [2407630]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
pavelvp
Member

Откуда:
Сообщений: 673
4d_monster
Есть в Линтер, правда без подтверждения постом

Не понял фразу. В ЛИНТЕР мандатная защита появилась около 10 лет назад.
Реально используется на различных объектах. Сертифицирована по второму классу для СВТ, разрешается использвание в защищённых АС вплоть до класса 1А.
Кто применял в Жизни пожалуйста если можно напишите ещё

Про удобство использования уже говорилось - мандатная защита требует аккуратности в проектировании БД и раздаче прав. В остальном - SQL :-)
Доку можно здесь взять:
Описание модели защиты - http://www.relex.ru/lindoc/pdf_file/mod_szi.pdf
Администрирование - http://www.relex.ru/lindoc/pdf_file/admin_szi.pdf
- скорость при малых списках ACL и при больших, а так же при разных количествах записей в таблицах
Скорость практически не страдает (3-5%, не более), т.к. всё это зашито в ядре в механизмах доступа.
- как к этому у вас юзеры относятся
С пониманием :-)
2 мар 06, 15:03    [2409163]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
4d_monster
Member

Откуда: Москва
Сообщений: 1613
Всем спасибо за ответы

IMHO, Mon$te®
2 мар 06, 21:29    [2410938]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
MX -- ALEX
Guest
aZm
softwarer
Хм. Я бы сказал, программно это реализуется почти где угодно. view еще никто не отменял.


цена больно высока получается... на каждую строку дернуть функу проверки...

в M-системах (MSM, GTM, M3-LITE, CACHE) это просто по программе
и не накладно по скорости
но - прописать все надо ручками
3 мар 06, 09:42    [2411755]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
AI
Member

Откуда: Москва
Сообщений: 2817
pavelvp
kdv
Oracle, Linter. про другие не знаю. Эта фишка называется "мандатная защита".
Немного поправлю Диму.
Мандатная модель разграничения доступа реализована только в ЛИНТЕР. У Oracle сделано на логическом уровне, а мандатная защита подразумевает раздачу прав (назначение меток доступа) непосредственно данным, физически.
Модель защиты Oracle проще в администрировании, но она не решает некоторых проблем, AFAIK. Например, понижение секретности данных и всё с этим связанное, SYS видит всё и т.п.
В ЛИНТЕР реализована мандатная модель и доступ разграничивается вплоть до значений атрибутов, права доступа являются неотъемлемой частью самих данных (и субъектов, и объектов). Мандатная модель обеспечивает беспрецедентный уровень защиты, но сложнее в проектировании и администрировании БД.


В оракле система защиты на метках данных (label security) была реализована еще в 7 версии. То есть почти 15 лет назад.
4 мар 06, 16:13    [2416940]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
Stas Tristan
Member

Откуда: Kyiv, Ukraine
Сообщений: 190
в MS SQL Server 2005:
http://www.microsoft.com/technet/prodtechnol/sql/2005/multisec.mspx
4 мар 06, 17:43    [2417048]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
c127
Guest
MX -- ALEX

в M-системах (MSM, GTM, M3-LITE, CACHE) это просто по программе
и не накладно по скорости
но - прописать все надо ручками

Интересно, а как ручками прописать права для каждой строчки таблицы (или что там у вас) в 10^6 строк?

По скорости, при использовании представлений и в других БД не накладно, если правильно построить индексы разумеется. Если раздавать права системно то не знаю, не использовал. Не понимаю зачем оно нужно, если предсатвления легко и просто решают эту проблему.
6 мар 06, 11:06    [2420280]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
MX - ALEX
Guest
c127
MX -- ALEX

в M-системах (MSM, GTM, M3-LITE, CACHE) это просто по программе
и не накладно по скорости
но - прописать все надо ручками

Интересно, а как ручками прописать права для каждой строчки таблицы (или что там у вас) в 10^6 строк?

у нас на каждой строке автоматом ставится невидимая
невооруженным глазом отметка
кто когда и с какого места ввел эту строку

и например задано условие что править-удалить эту строку
может только тот кто ввел ее первый раз
6 мар 06, 11:30    [2420384]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
pavelvp
Member

Откуда:
Сообщений: 673
AI
В оракле система защиты на метках данных (label security) была реализована еще в 7 версии. То есть почти 15 лет назад.
Честно говоря я про Trusted версию уже и забыл. Не слышно что-то про неё ничего.
6 мар 06, 13:59    [2421220]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
softwarer
Member

Откуда: 127.0.0.1
Сообщений: 67463
Блог
c127
По скорости, при использовании представлений и в других БД не накладно,

Может оказаться накладным - во всяком случае, нужно приложить заметное количество усилий.

Пример: допустим, для нескольких ролей пользователей различается логика раздачи прав на строки одной и той же таблицы (например, начальник видит данные зарплаты по своим сотрудникам, кассир - по состоянию "предназначено к выдаче", а администратор - без ограничений). Если давать права через единственный view, потребуется соорудить в нем условие "или", возможно с подключением разных таблиц в разных случаях, что может оказаться не очень производительным. Если же делать через разные view, теряется возможность нормально использовать для этих пользователей общую ХП.

c127
Если раздавать права системно то не знаю, не использовал. Не понимаю зачем оно нужно, если предсатвления легко и просто решают эту проблему.

Чтобы решать легче и проще.
6 мар 06, 15:03    [2421574]     Ответить | Цитировать Сообщить модератору
 Re: Права доступа на уровне строк?  [new]
Один1
Guest
Stas Tristan
в MS SQL Server 2005:
http://www.microsoft.com/technet/prodtechnol/sql/2005/multisec.mspx
Это не то.
Цитата
Implementing Row- and Cell-Level Security in Classified Databases Using SQL Server 2005
The mechanism we will use to enforce row-level security is SQL Server views. Views allow a predefined query to be presented to a user or application as if it were a table. Also, users can be granted access to a view, but denied access to underlying tables. This prevents the user from bypassing the view and going straight to the base table. We will use a specially constructed view which applies all the necessary logic to enforce row-level security based on labels.
PS: ЕМНИП, МС перед выходом Юкона грозилась сделать row-level безопасность в стиле Оракла, да так и не сделала.
6 мар 06, 15:19    [2421679]     Ответить | Цитировать Сообщить модератору
Топик располагается на нескольких страницах: [1] 2   вперед  Ctrl      все
Все форумы / Сравнение СУБД Ответить