Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
Средствами SQL-сервера можно каждому юзеру дать права на select, update, delete и insert. Но эти права распространяются на всю таблицу. А если нужно дать каждому юзеру возможность смотреть только часть записей (скажем, введенным только им, что фиксируется в соотв. поле этой табл.) можно ли это сделать средствами администрирования SQL или нужно для этого обязательно писать код? Может есть какие-то стандартные подходы в этом вопросе? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 07:25 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
Стандартные подходы есть, например через View или с использованием ХП. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 07:31 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
Извиняюсь, а что такое ХП? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 07:59 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
ХП - хранимые процедуры Можно просто организовать работу с базой только через ХП, а юзерам давать права только на выполнение этих процедур. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 08:07 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
2 Genady Последняя фраза достаточно интересна. С точки зрения разработчика БД использование только хранимых процедур практически снимает вопросы разграничения доступа пользователей. Но я вот например пишу как серверную часть, так и клиентскую. В клиентских программах чуть ли не на каждой кнопке разные запросы прописаны. Представьте сколько должно быть SP, чтобы сделать все необходимое. Это во-первых. Во-вторых если разработка серв и кл частей отдана разным людям, то каждый раз работяга от Delphi будет бежать к админу и просить - сделай мне еще штук 20 SP? Хотелось бы услышать мнение по этому поводу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 09:22 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
2 Epanch 2 Александр Гладченко Я по моему нигде не говорил, что вариант с хранимыми процедурами единственный или наилучший > В клиентских программах чуть ли не на каждой кнопке разные запросы прописаны. У меня есть ХП в которую строковыми параметрами передаются: имя таблицы, условие выборки и порядок сортировки. А процедура формирует запрос и выполняет его через exec. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 10:40 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
Вариант с Views естественно хорош. Обсуждается вторая часть (с SP). Вариант одной процедуры с параметрами не дает выигрыша в безопасности по сравнению с таблицами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 10:47 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
>Вариант одной процедуры с параметрами не дает выигрыша в безопасности по сравнению с таблицами. Ну, в общем да, если не использовать ролей. С помощью роли не пускать юзера к базе минуя приложения, а в процедуре заложить логику по горизонтальному фильтру. По моему должно неплохо получиться. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 11:15 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
для 2х уровневой системы необходимо использовать исключительно SP. Причины уже раз сто описаны в литературе - это и безопасность и транзакционность и трафик... Что касется кол-ва - если система хорошо структурирована - то разобраться в нескольких тысячах процедур не так уж и сложно если предполагается использовать многоуровневую систему (Transaction Server), то там допускаются запросы из бизнес - объектов к БД. но и безопасностью там можно управлять на уровне бизнес - объектов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 11:40 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
Если закрыть прямой доступ к таблицам, а оставил доступ только к ХП, в которых динамически формируется строка запроса set @SQLString='select SomeField from SomeTable' и далее выполняется через вызов exec(@SQLString), то при попытке выполнить такую процедуру получишь сообщение об ошибке - попытка нарушения прав доступа. Дело в том, что текст запроса, находящийся в @SQLString выполняется не в контексте хранимолй процедуры, а в контексте пользователя, вызвавшего эту хранимую процедуру. То есть, для того, чтобы эта хранимая процедура нормально работала, нужно предоставить всем пользователям, ее вызывающим, права на прямой доступ к исходной таблице, а не только на запуск к хранимой процедуре. А вот как такие штуки работают из роли приложения - честно говоря не знаю, не пробовал. Отзовитесь кто-нибудь из тех, кто пробовал. Не выпадает ли из контекста роли приложения динамически формируемый и выполняемый запрос? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 14:15 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
Так и не нужно выполнять такой скрипт. Можно сделать так: select SomeField into #tmp from SomeTable а уж затем set @SQLString='select * from #tmp' ... ну и так далее ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 15:45 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
SP действмтельно получается много. Но малюсенькие однотипные запросы можно спокойно запихнуть в одну, передав ей дополнительный пар-р. И ешё один плюс. Зачастую меняются только правила игры, а отображение результатов остаётся прежним. И возможность "на лету" внести исправления в логику - дорогого стоят. Что касается изначального вопроса, то у меня в системе построена собственная система ролей с областями видимости, правами на операции etc. И всё только на SP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 07.06.2001, 20:37 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
2 AnS1 > для 2х уровневой системы необходимо использовать исключительно SP. >Причины уже раз сто описаны в литературе - это и безопасность и транзакционность и >трафик... А пару ссылочек не дадите? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2001, 02:18 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
Всем большое спасибо. Не ожидал столь массированного ответа - похоже, что вопрос животрепещет... Итак, три подхода - защита средствами сервера (ХП, View), защита на уровне бизнес объектов (рассказал бы кто на живых примерах - что это такое...), защита на уровне интерфейса. Третий вариант сильно не нравится, т.к. навешивание разных проверок и ограничений в клиентской части затрудняет поддержку (с этим наборолся в 1С:Предприятии). Второй может быть хорош, но не сталкивался , первый нравится больше всего. Голосуем? А насчет того, что много раз в литературе описано, хотелось бы уточнить - в какой? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2001, 06:29 |
|
||
|
Защита данных
|
|||
|---|---|---|---|
|
#18+
>Итак, три подхода - защита средствами сервера (ХП, View), На самом деле это скорее два подхода, хотя конечно можно и совмещать >защита на уровне бизнес объектов (рассказал бы кто на живых примерах - что это такое...), Почитайте литературу по технологоиям COM, DCOM или CORBA. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 08.06.2001, 06:33 |
|
||
|
|

start [/forum/topic.php?fid=46&msg=32007183&tid=1826547]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
28ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
47ms |
get tp. blocked users: |
1ms |
| others: | 256ms |
| total: | 368ms |

| 0 / 0 |
