Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Добрый день Хотел спросить у знающих товарищей, каким образом можно осуществить такое: Допустим есть таблица, которая содержит реквизиты документов, т.е. фактически это табица документов. Теперь нужно сделать так, что бы некоторые пользователи могли видеть одни документы(записи в таблице), но не видеть другие и тд. Думал организовать это с помощью курсоров (например делаем выборку из таблицы документов, только тех записей которые удов. определенным условиям, которые связаны с правами пользователя). Соответсвенно пользователь не может сделать выборку из самой таблицы (у него нет прав на SELECT но есть на INSERT). Почитав форум - наткнулся на то, что курсоры это мол тормоза и их использование - показывает непрофессионализм разработчика, и все в таком же духе. А как тогда реализовать безопасность? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:13 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Для этих целей используют представления. Они представляют собой средство, которое позволяет пользователям видеть то, что им положено... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:15 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
А можно чуть подробней Еще как средство - Хранимые Процедуры ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:31 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Да и еще Может я совсем дуб, но под курсораси я Вьюшки подрузомевал ( Щас полетят камни ? ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:33 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Ну это специальный вид доступа к данным. Те же самые "виртуальные" таблицы, которые построены на основе физических. Это средство хорошо организовано в MS SQL Server. А Вы на накой СУБД сидите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:50 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Я на ней и сижу. Делал несколько тестовых вьюшек. Но вот где не натыкаюсь в форуме с помощью них делать не советуют. Например написали что если зайти в QA и написать запрос типа SELECT * FROM MyView - то пользователь может увидеть данные которые ему видеть не пологается А есть ли примеры (ссылки на форумы идт) где обсуждалась бы реализация такой системы? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 15:59 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
ДемиургЯ на ней и сижу. Делал несколько тестовых вьюшек. Но вот где не натыкаюсь в форуме с помощью них делать не советуют. Например написали что если зайти в QA и написать запрос типа SELECT * FROM MyView - то пользователь может увидеть данные которые ему видеть не пологается А есть ли примеры (ссылки на форумы идт) где обсуждалась бы реализация такой системы? В представлении необходимо указывать только те поля, которые должен видеть пользователь. Если, например, в представление вы указали field1 и field2, а в самой таблице еще и есть field3 и field4, то при выполнении Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 16:06 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Физически Вы вряд ли запретите просмотр или редактирование только части строк. Это можно сделать только в некоторых частных случаях. Лучше всего сделать это на уровне приложения, которое само не даст выполнить запрещенное действие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 16:15 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
LSVФизически Вы вряд ли запретите просмотр или редактирование только части строк. Это можно сделать только в некоторых частных случаях. Лучше всего сделать это на уровне приложения, которое само не даст выполнить запрещенное действие. Да но приложение тогда должно иметь полный доступ к бд. Соотв-нно если пользователь узнал Логин и Пароль под которым коннектится прога - то он может сделать с базой что захочет. Не так ли? 2 Paul Sacks я тоже так думал (и пробовал - получалось), а тут вот натыкаюсь http://www.sql.ru/forum/actualthread.aspx?tid=41745&hl=%e1%e5%e7%ee%ef%e0%f1%ed%ee%f1%f2%fc ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 16:22 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Ходят слухи, что в Юкон появится механизм (в Оракле начиная с версии 8.1.7 - ): - FGAC Fine Grain Access Control или Row Level Security), который может сделать то, что нужно Вам. P.S. Link ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 17:57 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
ДемиургА как тогда реализовать безопасность? Реализация ядра безопасности в информационной системе Реализация сервера объектного представления средствами реляционной СУБД И другие материалы в разделе "Проектирование" ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.07.2005, 20:53 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Всем спасибо Таким образом - насколько я понял вьюшки - это не тормоза, и использование их вовсе не показатель непрофиссионализма, а вполне допустимая вещь. И если с таким подходом система и будет работать медленней, то не на много? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 09:28 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
авторСоотв-нно если пользователь узнал Логин и Пароль под которым коннектится прога - то он может сделать с базой что захочет. Не так ли? Да. Для избежания этого делают суррогатные пароли. Тогда пользователь не знает истинного пароля к СУБД. В ЛЮБОЙ СИСТЕМЕ вход "в обход" клиентской части чреват ужасными последствиями. От этого практически нереально защититься. Завесить систему можно обычным тупым SELECT. Поэтому лучше, чтобы юзер не знал настоящий логин/пароль. Что касается вьюх, то на них безопасность произвольной сложности сделать крайне трудно. Гораздо проще её сделать на клиентской части. ЗЫ: Наверно лучшее решение - разумное сочетание нескольких способов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.07.2005, 10:44 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
Есть следующее решение этого вопроса. 1. Необходимо создать 3 дополнительные таблицы. Таблица 1 содержит имена пользователей (USER_NAME) SQL сервера, назовем ее USERS. Пример: ALLA MARINA SVETA Таблица 2 содержит имена групп (GROUP_NAME), в которые объединены пользователи SQL сервера, назовем ее GROUPS. Пример: ALL PART Таблица 3 (GROUP_NAME, USER_NAME) является bridge table между таблицами 1 и 2, она содержит связь между пользователями и группами, назовем ее GROUPS_USERS. Пример: ALL, ALLA PART, ALLA ALL, MARINA PART, SVETA 2. В исходную таблицу SOURCE_TABLE необходимо добавить поле c именем группы. Допустим в этой таблице (ID, NAME, GROUP_NAME) есть записи: 1, apple, all 2, orange, part 3. Создать представление типа CREATE VIEW source_view AS SELECT * FROM source_table WHERE group_name IN (SELECT group_name FROM groups_users WHERE user_name = USER) Где USER это функция базы данных для получения имени пользователя. 4. Дать пользователям доступ только к представлению source_view Тогда пользователь ALLA будет видеть записи 1, apple, all 2, orange, part Соответственно пользователь MARINA будет видеть записи 1, apple, all Соответственно пользователь SVETA будет видеть записи 2, orange, part Это универсальный механизм, который используется в реально работающей системе. Естественно за это решение необходимо платить созданием дополнительных табличек, поля и их сопровождением. Еще понадобятся внешние ключи и индексы. Будет изменяться список пользователей и групп и это тоже необходимо поддерживать. У Oracle появился этот механизм начиная кажется с версии 9i. Смотрите подробное описание в "Label Security Administrator's Guide". Суть его похожа, сервер на лету переписывает ваши запросы для разграничения доступа к записям таблицы. "Демиург" <nospam@sql.ru> wrote in message news:1676619@sql.ru... Добрый день Хотел спросить у знающих товарищей, каким образом можно осуществить такое: Допустим есть таблица, которая содержит реквизиты документов, т.е. фактически это табица документов. Теперь нужно сделать так, что бы некоторые пользователи могли видеть одни документы(записи в таблице), но не видеть другие и тд. Думал организовать это с помощью курсоров (например делаем выборку из таблицы документов, только тех записей которые удов. определенным условиям, которые связаны с правами пользователя). Соответсвенно пользователь не может сделать выборку из самой таблицы (у него нет прав на SELECT но есть на INSERT). Почитав форум - наткнулся на то, что курсоры это мол тормоза и их использование - показывает непрофессионализм разработчика, и все в таком же духе. А как тогда реализовать безопасность? Тема Ответить Posted via ActualForum NNTP Server 1.2 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.07.2005, 12:24 |
|
||
|
Реализация системы безопасности
|
|||
|---|---|---|---|
|
#18+
ламерский вопрос - что такое QA? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 18.07.2005, 18:00 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33150552&tid=1545762]: |
0ms |
get settings: |
11ms |
get forum list: |
17ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
141ms |
get topic data: |
9ms |
get forum data: |
2ms |
get page messages: |
53ms |
get tp. blocked users: |
2ms |
| others: | 289ms |
| total: | 532ms |

| 0 / 0 |
