|
|
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
Условия – создаются (изменяются, удаляются) файлы (например, Word'овские). Задача – санкционировать все эти операции. Вариант решения – возложить эти операции на БД. А именно: создавать эти файлы с паролем (а можно, кстати, и без, но с ним лучше), одновременно записывая в поля какой-н. таблицы дату и время создания и изменения файла. Периодически (или при обращении к файлу) проверять, совпадает ли время изменения файла с табличным значением, если да – открывать, если нет – выдавать соответствующее предупреждение с вариантами последующих действий. Кто что скажет? Может, есть другие лучшие варианты? Тогда, если можно, ссылку. А вот кто что-то поменял в документе в таком варианте узнать невозможно. Может быть, сохранять копии после сеанса юзера, а в полях таблицы прописывать его имя и ссылку на эту копию? И что, интересно, делать, если два пользователя из базы полезут в этот файл? Отдельно проверять на занятость ресурса и второму давать отлуп? Но что именно было изменено пока тоже невозможно узнать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.05.2007, 19:55 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
КДУсловия – создаются (изменяются, удаляются) файлы (например, Word'овские). Задача – санкционировать все эти операции. Хранить файлы в БД. Есть недостатки, зато ваши проблемы все решаются (доступ, копии . одновр. доступ и т.д.). Целесообразно если файлы маленькие. Тема обсуждалась. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2007, 11:27 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
любите изобретать велосипеды ?? если нет - посмотрите в сторону Sharepoint services или sharepoint server там эти и многие другие вопросы уже решены... С уважением, Petr[@]Chulkov.NET ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2007, 12:46 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
Всем спасибо! 2 Petr Chulkov sharepoint server - дело хорошее, но, как я понял, существуют только в составе Windows Exchange Server? Если так, то этот вариант, наверное, не подойдет. Во-первых, не всем он (Windows Exchange Server) доступен. Во-вторых, не все машины его потянут (на некоторые он может просто не встать). В-третьих, просто неудобно ставить пользователей перед фактом, что для работы программы им надо еще кучу чего-то устанавливать, особенно ОС. Я бы хотел обойтись минимумом инсталлируемых компонентов. 2 мод Хранить файлы в БД - более интересная идея, хотя все-таки проблема что именно поменяли и в этом варианте остается. Файлы действительно не очень большие. Но база делается под Access, а там кроме MEMO-полей ничего для хранения применить нельзя. Не будет ли каких-н. больших сложностей при таком выборе? З.Ы. Велосипеды изобретать не люблю, поэтому и задаю вопросы на форум. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.05.2007, 19:33 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
1) А что, файлы хранятся не на файловом сервере, а на локальных машинах? 2) База конечно может делаться "под Аксесс", при этом данные могут храниться на любом SQL сервере, лишь бы ODBC драйвер был. 3) Sharepoint доступен и как отдельный продукт ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 09:13 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
КДХранить файлы в БД - более интересная идея, хотя все-таки проблема что именно поменяли и в этом варианте остается. Обычный аудит полей БД решает все проблемы (файл - это поле) КДНо база делается под Access, Не будет ли каких-н. больших сложностей при таком выборе? Access - это самая большая сложность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 09:22 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
2 Изопропил Нет, ну файлы, конечно, можно хранить и на файловом сервере. Любого SQL-сервера нет, есть Access. Может быть Sharepoint и доступен отдельно, но повторюсь, что хотел бы обойтись минимумом компонентов. Не у всех есть SQL-сервер и не у всех есть Sharepoint. Дополнительные программы можно привлечь, если Access'ом ну никак не обойтись. Хотя, конечно, такие программы зачастую проще, надежнее и т.д. 2 мод А что такое "обычный аудит полей"? Предположим, что файл размещен в MEMO-поле. Ну и как мы узнаем какое слово поменял влезший в него пользователь? > Access - это самая большая сложность. Не будем разводить дискуссии на тему что круто, а что - нет. Что конкретно в Access'е помешает реализовать поставленную задачу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 24.05.2007, 19:10 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
КД Ну и как мы узнаем какое слово поменял влезший в него пользователь? Файл с точки зрения БД рассматривается как одно поле ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2007, 15:43 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
КДВсем спасибо! 2 Petr Chulkov sharepoint server - дело хорошее, но, как я понял, существуют только в составе Windows Exchange Server? Если так, то этот вариант, наверное, не подойдет. Во-первых, не всем он (Windows Exchange Server) доступен. Во-вторых, не все машины его потянут (на некоторые он может просто не встать). В-третьих, просто неудобно ставить пользователей перед фактом, что для работы программы им надо еще кучу чего-то устанавливать, особенно ОС. Я бы хотел обойтись минимумом инсталлируемых компонентов. вы поняли не правильно SharePoint Services (а не сервер) идёт как часть win 2003 server R2.... в крайнем случае его можно скачать с microsoft.com и к exchange никакого отношения не имеет... клиентам ОС никакую устанавливать не придётся ( если они не под *NIX работают)... как и софт... Sharepoint весьма хорошо с офисом MS интегрён (для 2003 и выше - в комплекте, а для XP - есть клиенте) ... в общем чего я рассказываю. за меня всё давно на сайте компании производителя расписано... прочтите внимательно!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2007, 16:18 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
2 мод >Файл с точки зрения БД рассматривается как одно поле Да ради бога, пусть как угодно рассматривается. Вопрос: как мы узнаем, что именно поменяли в этом поле? 2 Petr Chulkov А, значит, я неправильно понял... А Вы сами использовали в своих проектах именно SharePoint Services? Я только-только начал потихоньку разбираться в Access, а тут уже валится целая куча дополнительных прог... Сильно замудренный этот SharePoint Services? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2007, 19:46 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
КДДа ради бога, пусть как угодно рассматривается. Вопрос: как мы узнаем, что именно поменяли в этом поле? Ну вот мы и упёрлись в ограничения Access Было-бы логично повесить триггер на UPDATE и перехватить изменение в поле таблицы, однако Access не поддерживает триггеров, по крайней мере стандартно. нарыл ссылку , как их (триггеры) прикрутить к Accessу, сам не пробовал, так что развлекайтесь, если есть желание ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2007, 22:02 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
А нет, гоню, походу. вот что дал поиск по форуму аксесса: http://www.sql.ru/forum/actualtopics.aspx?search=%F2%F0%E8%E3%E3%E5%F0&submit=%CD%E0%E9%F2%E8&bid=4 покопайтесь там, может и найдёте чего, что поможет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.05.2007, 22:25 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
2 egorych Ну, во-первых, прямой доступ пользователей к таблице – это моветон. Все делается через формы. Т.е. открыть, поменять и т.д. что-то можно, только сделав какие-то телодвижения в базе (нажатия кнопок, открытия форм и т.д.). Это все прекрасно отслеживается в Access, в т.ч. предварительная проверка прав доступа пользователя к определенным действиям, одновременная запись того, кто, что и когда открыл. Не в этом вопрос. А в том, что в поле MEMO (да, собственно, и в любом другом поле) хранится последовательность битов (ну если упрощенно). Потрогали ее или нет узнать можно легко, а вот в каком месте – я пока не знаю как. Ну как отследить изменение одного слова? Еще раз повторю, важно отследить не ФАКТ ИЗМЕНЕНИЯ, а РЕЗУЛЬТАТ ИЗМЕНЕНИЯ. Но, кажется, поле MEMO и не подойдет (мало знаков), придется пощупать OLE. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2007, 00:34 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
1. Ну, в Аксессе довольно сложно полностью запретить прямой доступ пользователя к таблице, при желании оного туда залезть. Фактически, реализовать запрет на порядки сложнее (если вообще возможно), чем через этот запрет пробиться 2. В том и смысл триггера, чтоб в нём при обновлении записи в таблице (не важно, каким способом, причём: формы, ручками, ODBC, через чёрта в ступе и т.д.....) можно было-бы эти самые изменения посмотреть, если угодно - принять, если угодно - не принять, разобрать их по косточкам, найти изменённое слово и ещё всё что душенька пожелает. Потому как Вы абсолютно верно заметили, просто сам факт наличия изменения мало кого интересует. 3. Для решения этой задачи, кстати, ещё имеет немаловажное значение размер документов, которые Вы хотите хранить в своей БД. Да и структура их (или отсутствие таковой). т.е., я хочу сказать, что хранить заявления на отпуск - это одно, а "война и мир" - совсем другое, хотя оба они могут быть в формате Ворд. 4. Может быть в данном случае Вам подойти к решению санкционирования немного с другой стороны? попробовать решить проблемы санкционированности средствами управления безопасностью операционной системы? имею ввиду права доступа и т.п.? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2007, 00:50 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
КДДа ради бога, пусть как угодно рассматривается. Вопрос: как мы узнаем, что именно поменяли в этом поле? Что здесь не так с постановкой задачи. Поменяли файл jpg - в каком бите ? В том то и дело что файл надо рассматривать как единое целое. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.05.2007, 09:29 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
2 egorych > Ну, в Аксессе довольно сложно полностью запретить прямой доступ пользователя к таблице, при желании оного туда залезть. Предлагаю не дискутировать на тему крутизны защит в тех или иных СУБД. Тема большая и отдельная. Примем, что обычный пользователь туда не полезет (не все даже знают что есть таблицы), видно только формы. Вообще в любой файл можно залезть – вопрос времени, квалификации и финансов. > Фактически, реализовать запрет на порядки сложнее (если вообще возможно), чем через этот запрет пробиться. Согласен, а что делать? Пойду традиционным путем – показываем только формы, настраиваем меню и т.д. > В том и смысл триггера, чтоб в нём при обновлении записи в таблице (не важно, каким способом, причём: формы, ручками, ODBC, через чёрта в ступе и т.д.....) можно было-бы эти самые изменения посмотреть, если угодно - принять, если угодно - не принять, разобрать их по косточкам, найти изменённое слово и ещё всё что душенька пожелает. Еще раз перечитаю про триггеры, но, кажется, это просто выполнение каких-то действий при наступлении определенных условий. Скажем, при событии Update поля формы создается запись в таблицы кто и когда этот Update учинил. Как с помощью триггера узнать, что именно было проапдейтено в поле формы, особенно если это поле MEMO с 64000 знаков, я что-то не врубаюсь. Есть пример, как найти измененное слово? > Для решения этой задачи, кстати, ещё имеет немаловажное значение размер документов, которые Вы хотите хранить в своей БД. Да и структура их (или отсутствие таковой). т.е., я хочу сказать, что хранить заявления на отпуск - это одно, а "война и мир" - совсем другое, хотя оба они могут быть в формате Ворд. Да, верно, поэтому, подумав, я решил отказаться от MEMO. > Может быть в данном случае Вам подойти к решению санкционирования немного с другой стороны? попробовать решить проблемы санкционированности средствами управления безопасностью операционной системы? имею ввиду права доступа и т.п.? Так я про это в самом первом своем посте спросил в общем виде. Естественно, что санкционированность будет. И практически все я примерно представляю, кроме одного – как узнать ЧТО именно было изменено. Мне что – последовательность битов проверять? Как это можно сделать средствами ОС? 2 мод > Что здесь не так с постановкой задачи. Поменяли файл jpg - в каком бите ? В том то и дело что файл надо рассматривать как единое целое. Не надо передергивать, хотя допускаю, что кому-то может быть важным отслеживание изменений битов в jpg'овских файлах. Я уже объяснил, что нужно узнать не факт изменения, а результат. Или это в принципе невозможно? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2007, 19:13 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
КДПредлагаю не дискутировать на тему крутизны защит в тех или иных СУБД. Тема большая и отдельная Ой, на самом деле не желал разводить дискуссии такого рода, в неудачной форме попытался показать ограничения конкретной СУБД, не более О триггерах если коротко, опуская детали - триггер позволяет перехватить управление в момент до внесения изменения в таблицу и получить доступ как к данным, которые будут помещены в таблицу и к тем данным, которые будут изменены. Возможно определить какое(ие) именно поля подверглись изменению, получить конкретные значения, а дальше - операция сравнивания строк, как г-ться - дело техники . ИМХО, обрабатывать таким образом поля размерностью 64К - занятие накладное и утомительное. Поэтому, если у документов есть некоторая структура, то неплохо-бы эту структуру описать в БД. Ещё одно соображение - ИМХО, отслеживать изменённые слова - довольно бесполезная задача, потому как пользователь может текст вообще по новой написать, а не поменять пару суффиксов, верно? Поэтому стоит хранить старые версии документа в той-же БД, в архивной-ли таблице, в той-же самой - надо смотреть на размеры документа и вероятное количество таких возможных изменений. Ну а справочники и классификаторы - этого Вам в других топиках насоветовали уже ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.05.2007, 21:59 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
Как будет осуществляться доступ к файлам ? Если вас устраивает схема - в спец. программе находим файл - копируем на локальный диск - редактируем локальную копию - спец. программой закидываем в хранилище то с этим справится любая система контроля версий файлов, например subversion. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2007, 09:27 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
КД Я уже объяснил, что нужно узнать не факт изменения, а результат. Или это в принципе невозможно? Возможно, но для каждого типа файлов нужен свой метод (doc, xls, txt, pdf, rtf ....). Но к способу хранения это уже не имеет отношения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2007, 10:03 |
|
||
|
Защищенное создание, изменение и удаление файлов из БД
|
|||
|---|---|---|---|
|
#18+
Одним словом, узнать ЧТО именно поменяли – задача охренительно трудная, практически невозможная. Таким образом мы логически перетекаем на вариант хранения версий. Т.е. собственно к моему первому посту. Поскольку сами тексты хранить нельзя (объем не позволяет), думаю все же использовать прописывание путей и т.д. Тексты открывать прямо в Word'е. Токо нюансы надо обдумать. Например, убирать из меню "Сохранить как". Какие еще могут быть грабли при таком подходе? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 31.05.2007, 18:10 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=34547424&tid=1544491]: |
0ms |
get settings: |
6ms |
get forum list: |
12ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
184ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 203ms |
| total: | 481ms |

| 0 / 0 |
