Просмотр полной версии : Как защитить базу данных от слишком продвинутых юзеров
Тата0011
05.05.2012, 09:38
Помогите пожалуйста!
Есть сеть с сервером Windows Serwer 2003 на котором лежит база и специфичная программа, в которой работают юзеры. Чтобы заработала прогрмма на компах юзеров база должна быть подключена как сетевой диск к каждому компу. И некоторые юзеры ее используют как хранилище данных... Как можно разрешить полный доступ программе к этому сетевому диску, на котором расположена база данных и запретить доступ юзерам к базе данных???
два варианта:
1) создаете на сервере спец.пользователя и разрешаете доступ к папке с базой только этому спец.пользователю.
всем остальным пользователям доступ к папке с базой запретить.
спец.программу запускать от имени спец.пользователя.
2) поставить на сервер драйвер-фильтр файловой системы и написать программу управляющую поведением этого драйвера.
написать сервис который будет получать от драйвера информацию о всех попытках доступа к папке с базой и будет решать кому разрешить доступ а кому и 'линейкой по рукам' :-)
Тата0011
07.05.2012, 13:09
Я, наверное, не слишком корректно сформулировала вопрос. Нужно чтобы юзеры работали с базой в программе, но не могли зайти в папку с базой без программы, скажем через проводник. Причем база должна быть подключена к компьютеру как сетевой диск, иначе программа не работает.
DmitryE777
07.05.2012, 13:22
При поставленных Вами условиях - никак. Потому что условия ваши - взаимоисключающие.
Тата0011, внимательно прочитайте мой 1й ответ. Вы из под пользователя user1 или там olga или masha56 запускаете свою программу с правами пользователя userformybase у которого есть право на доступ к диску с вашей базой. У всех остальных пользователей такого права нет. Гуглите runas.
Но у этого варианта есть минусы.
Чтоб обойти минусы 1го варианта я вам и 2й вариант расписал.
Тата0011
07.05.2012, 23:19
Если использовать 1-ый вариант, то кто помешает юзеру зайти с правами спец.пользователя не в спец.программу, а на комп, ведь он будет знать и спец.логин и спец.пароль и путь к папочке открыт... А вот как реализовать второй вариант буду думать, спасибо!
В 1м варианте можно использовать не комманду runas а самописную программу (стартер) которая будет запускать вашу спец.программу с правами спец.пользователя. У пользователей будет только ярлычек на программу стартер и никто логина/пароля спец.пользователя знать не будет.
2й вариант намного более трудозатратный. Но если вы найдете элегантное решение - не забудте поделиться со мной.
Тата0011
12.05.2012, 22:08
Первый вариант не прошел. Спец. программа написана таким образом, что когда заходишь от имени другого пользователя у которого есть доступ к диску с базой программма открывается, но не работает. Такое ощущение, что она не получает полный доступ к сетевой папке с базой...
У комманды runas есть два варианта выполнения - с использованием среды пользователя и без. По умолчанию среда пользователя не используется.
Alan2006
14.05.2012, 14:02
Может я брежу конечно... тогда заранее извините...
Не прокатит ли такой вариант: дать пользователям права на редактирование существующих файлов но не создание новых?
По крайней мере с 1с такой фокус прокатывал, помнится.
Только нужно учесть:
1. Не создаёт ли программа по ходу пьессы новые, рабочие файлы.
2. Куда пишет свои временные файлы/кэш.
Просто колдовство с runas, имхо, не даст полноценной защиты.
Тата0011
14.05.2012, 22:10
Alan2006, спасибо,но такой вариант не прокатит... При работе программы создаются новые рабочие файлы в базе.
andrey_k
14.05.2012, 23:56
Можно отключить юзерам право смотреть содержимое папки: если программа список файлов не смотрит, а обращается сразу по конкретным именам, ей это не помешает, а вот из Проводника или другого файл-менеджера папку просмотреть не удастся.
Можно отключить юзерам право смотреть содержимое папки
Каким образом? Я для себя попробовал снять эту галку - пропала возможность модификации файлов. Осталось только дописывание потоком в файлы.
Мне кажется, можно закрывать тему как исчерпавшую себя.
Единственное, что ещё не рассматривалось - домен + квоты. Ставим квоты пользователей в ноль и наслаждаемся.
Тата0011
15.05.2012, 23:24
andrey_k, спасибо,попробую.
Добавлено через 14 минут
PLAstic, спасибо. Насколько я понимаю квотой устанавливается лимит дискового пространства для записи данных пользователя, но пользователи должны вносить в базу данные. И их объем бывает всегда разный.
Alan2006
16.05.2012, 10:13
Сейчас вопрос в голову пришёл... С него наверное и надо было начать ну да не суть.
А что за программка-то такая капризная?
Название есть?
Ещё мысли про runas пришли. Может она под другим пользователем не запустилась так-как у него не было примонтировано диска?
Тата0011
16.05.2012, 12:30
Alan2006, программка узко специализированная.
Диск примонтирован был. И она не то чтобы не запускалась. Она запускалась, открывалась, но когда пытались внести данные, она ругалась, то есть не давала данные записать.
Тата0011, не строй предположения, а сначала проверь. Они пишут данные в файл, владельцем которого является конкретный пользователь. Кто? Вот ему квоту не руби.
Alan2006, про то, что банально кривая прога, это и я давно уже хочу спросить. Проще написать новую.
Тата0011
16.05.2012, 20:41
PLAstic, она спущена свыше и в ней передаются данные. Ее не переписать не изменить нельзя, не потому что нельзя переписать прогу, а потому что данные должны забивать именно в нее.
Изначально база программы создавалась админом на сервере, он и владелец.
Спасибо! Буду пробовать. И еще разок проверю вариант с runas.
KaMa31980
30.05.2012, 06:56
Если стоит R2 укажи тип файлов которые можно создавать а какие запретить для данного диска
Еще можно попробывать снять флажок "Список содержимого папки" в настройках безопасности сетевого ресурса. Например, с 1С это срабатывает, т.к. она знает, что надо обратиться к определенному файлу (доступ на чтение-то есть), но пользователь папки через проводник просматривать не может.
vBulletin® v3.8.9, Copyright ©2000-2026, vBulletin Solutions, Inc.