![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
ADOConnection доступ к файлам БД
Константинов © (2010-10-23 12:52:00)Приложение будет расположено на файловом сервере. Файлы БД (*.mdb) там же, но доступ к директории с базой данных закрыт всем кроме владельца папки (во избежание порчи, удаления, несанкционированного копирования и т.п. файлов БД и сканов приватных документов, хранящихся в данной директории). Интерфейс взаимодействия с БД - через разрабатываемое приложение (ADOConnection).
Пытаюсь проверить защиту.
Снес права доступа всем пользователям (включая админа) к данной папке, назначил права доступа "полный доступ" владельцу папки.
Запускаю приложение от имени "бесправного" пользователя. ADOConnection без проблем коннектится к файлу БД.
Вроде бы задача решена. Работать с файлом БД можно, только не дает покоя КАК ADOConnection обошел запреты на доступ в данную папку? Ведь приложение запущено не от имени владельца папки?
Это баг или так и должно быть?
Anatoly Podgoretsky (2010-10-24 09:42:00) [1]> Константинов (24.10.2010 02:45:14) [14]
MS SQL промышленная база, легко маштабируемая
Константинов (2010-10-24 02:45:00) [2]
> sniknik © (24.10.10 00:20) [13]
Знаю... что в случае чего переделывать с нуля придется.
Только вот в чем дело. Сейчас стоит задача о нескольких сотнях, ну может быть тысячах записей в СУБД. Платформа известна - винда.
Надеюсь руководству понравится, будет единственное неудобство - недоступность БД при моем отсутствии на рабочем месте. Попсиховав, руководство должно созреть для мудрого решения выделить под эту задачу отдельный сервер (хотя бы виртуальный).
Вот тогда и будем думать, что на сервер поставить и под какую платформу писать приложение. Толи винда то ли линукс и вэб сервер.
Если всем этим заинтересуется головная контора (проблема-то общая а у них вебсервера в наличии). Перепишу под php и MySQL. По крайней мере вэб сервера уж точно держат несколько сотен-тысяч сессий одновременно. А про MSSQL ничего не знаю. Она с такой нагрузкой справится?
sniknik (2010-10-24 00:20:00) [3]> А вот защитой от несанкционированного доступа и уж тем более копирования - хай админ занимается.
мудрое решение... разграничивать надо не только доступ, но и работу, по специальности.
> Для локальной СУБД приложение я сделаю.
делай для глобальной... типа клиент серверной СУБД, ака MSSQL и ему подобное, но установленном у тебя локально. после проще будет.
и открою маленький секрет... чтобы работать с MySql поднимать вебсервер, и php не нужно, достаточно только самого MySql, ну и драйверов доступа (odbc/oledb).
Константинов (2010-10-24 00:06:00) [4]Вообще Анатолий, Вы правы.
Начал про Фому...
Хорошо. Вопрос снимаю. Поступлю, как это обычно бывает в госконторах.
Для локальной СУБД приложение я сделаю. И себе жизнь облегчу. А вот защитой от несанкционированного доступа и уж тем более копирования - хай админ занимается.
Anatoly Podgoretsky (2010-10-23 22:04:00) [5]Ты начал путаться в показаниях, уже забыл что писал в вопросе.
Константинов (2010-10-23 21:52:00) [6]Анатолий, знаете... Лично мне сервер нужен и в паблике он у меня есть. Выделенный сервер на М9. Со всеми полномочиями админа.
На работе - это другая планета, а точнее госконтора. Где свои ограничения, свои требования безопасности, свои инструкции, регламенты.т.д. и никто не пойдет на нарушения чтобы облегчить мне жизнь.
За сим, если мне придется обрабатывать в ручную всю эту кипу электронных документов - мне ни на что другое времени не останется. За сим. Про то чтобы поднять где-то сервер я не думаю, а юзаю что есть под рукой. :(
Anatoly Podgoretsky (2010-10-23 21:30:00) [7]> Константинов (23.10.2010 21:24:07) [7]
Значит вам сервер БД не нужен.
Константинов (2010-10-23 21:28:00) [8]
> А не боишься, что спустя некоторое время у тебя будет столько
> администраторов, сколько пользователей.
>
Вот в этом-то и дело. Чтобы перезагрузить приложение нужно где-то хранить пароли/явки администратора. Как вариант - объявить константы в исходном коде, и при необходимости смены паролей/логинов просто перекомпилировать приложение.
Константинов (2010-10-23 21:24:00) [9]
> Anatoly Podgoretsky © (23.10.10 21:11) [4]
Дома я поставил TopServer 2.1 и без горя обкатываю php скрипты.
Но на работе, все попытки поставить TopServer на свою локальную машину не увенчались успехом. Я так и не смог разобраться то ли топсервер конфликтует с каким-то ПО, толи фаервол не дает... К тому же не вариант. Это все таки рабочая станция, ушел домой, выключил - обрезал всем доступ к БД. А отдельную машину под сервер под это дело вряд ли дадут.
Anatoly Podgoretsky (2010-10-23 21:15:00) [10]> Константинов (23.10.2010 21:14:05) [5]
А не боишься, что спустя некоторое время у тебя будет столько
администраторов, сколько пользователей.
Константинов (2010-10-23 21:14:00) [11]Криво-косо додумался до того, что надо:
1. Разместить на файловом сервере приложение работающее с БД, и директорию к которой ограничен доступ.
2. При запуске приложения, оно само себя перезагружает с правами админа (или правами создателя директории) и тем самым получает доступ в директорию с файлами и БД.
Дальше - дело техники. Пиши/читай, просматривай разрешенные файлы делай выборки и т.д.
Anatoly Podgoretsky (2010-10-23 21:11:00) [12]> Константинов (23.10.2010 20:57:03) [3]
Разве MySQL не может работать ни изолированом сервере, без шар?
Если не может, то перейди на MsSQL
По документам, а как они будут поступать пользователю? И что помешает их
скопировать, поскольку сканированые, то по правой кнопке мышки? Придется
делать терминальную сессию, без возможности копирования данных.
Константинов (2010-10-23 20:57:00) [13]Уважаемые мастера.
Я, видимо, изобретаю трехколесный велосипед, труд над которым пустая трата времени. Хоть подскажите, какими способами можно решить задачу.
Я уже постил эту задачу, но повторюсь необходимо:
1. Собрать некий архив сканированных документов, разбитый на разделы.
2. Создать БД в которой хранить каталог документов и которая позволяла бы делать необходимые выборки и т.п.
3. Разграничить права доступа к БД и архиву ( админу - полный доступ, Группа юзеров №1 - права на просмотр , Группа юзеров №2 - права на запись в какой либо раздел, и запрет на просмотр чужих документов.
От руководства прозвучала фраза, мол сделать так чтобы невозможно было скопировать как саму БД так и файлы из архива.
Из ресурсов есть файловый сервер доступ к которому никому и ничем не ограничен.
Я знаю два способа решать подобные задачи:
а) поднимать вэб-сервер и работать с документами средствами php, MySQL.
б) Создать каталог/логический раздел на файловом сервере, закрыть к нему доступ обычным пользователям и писать клиент-серверное приложение.
Вэб сервер поднимать не разрешили.
Остается решать задачу средствами Delphi.
Подскажите хоть как проще решить эту задачу в таких условиях.
Если не в полном объеме ( я все думаю и не нахожу решения, как разрешить просматривать файлы, но запретить их копировать ) то хоть частично.
Заранее спасибо.
Anatoly Podgoretsky (2010-10-23 14:16:00) [14]> Константинов (23.10.2010 12:52:00) [0]
Это фантастика или ты не все и не так нам рассказал.
sniknik (2010-10-23 13:07:00) [15]> Это баг или так и должно быть?
это баг твоего администрирования... у "бесправного" все еще есть права, наследуются откуда то. поставь запрет, а не убирай права, у запрета приоритет выше он все наследуемые перекроет.
но вообще, идея с расшариванием и запретом прав для базы гнилая. не делают так.