01.02.2008, 15:38 | #1 |
Участник
|
документооборот и доступ к файлам
Цитирую задачу (прислано заказчиком):
Описание текущей ситуации - Сейчас каждый пользователь, имеющий право работать с документооборотом и файлами документооборота должен иметь доступ к файловому хранилищу \\server\doc. Но в этом хранилище сохраняются все файлы системы, всех модулей. Это не безопасно по нескольким причинам. Во первых, каждый пользователь имеет доступ ко всем файлам, может скопировать любой из них. А там все заявки клиентов, письма, приказы, в том числе конфинденциальные. В итоге - опасность утечки информации. Во вторых - опасность случайного удаления или правки документа, вирусного заражения и т.п. Что хотелось бы сделать - Закрыть доступ пользователям на эту папку, и реализовать размещение файлов в хранилище и чтения из него средствами AOS. Чтобы пользователь мог увидеть и получить доступ только к тем файлам, которые привязаны к записям таблиц открытому ему (пользователю) функционалу. Конкретного способа решения проблемы пока не придумал. Есть варианты - При размещении файл копируется клиентом в некую промежуточную папку, открытую для всех в сети. Далее этот файл "подхватывает" АОС, размещает в своем файловом хранилище стандартной процедурой. Для чтения файла происходит обратный процесс. Тут возможен вариант - читать файл средствами Internet explorer, открыв "виртуальную" папку в сети Возможны и другие варианты. Может кто то уже решал данную проблему... (Ax 3.0 sp3)
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
01.02.2008, 17:22 | #2 |
Member
|
Это, конечно, полумеры, но на всякий случай.
Для каждого типа документа можно указать разный каталог архива. С разными правами. Соответственно для каждого секретного вида документов отдельный тип документа настроить. Каталоги можно сделать "невидимыми" (приписать в конце имени $), чтобы меньше вредителей туда могло добраться.
__________________
С уважением, glibs® |
|
01.02.2008, 17:33 | #3 |
MCTS
|
А почему бы просто не хранить документы в базе?
|
|
01.02.2008, 17:37 | #4 |
Участник
|
Цитата:
Сообщение от glibs
Это, конечно, полумеры, но на всякий случай.
Для каждого типа документа можно указать разный каталог архива. С разными правами. Соответственно для каждого секретного вида документов отдельный тип документа настроить. Каталоги можно сделать "невидимыми" (приписать в конце имени $), чтобы меньше вредителей туда могло добраться. есть ещё вариант программно какимто образом устанавливать права в домене на файлы в зависимости от уровня доступа пользователей (у нас храниться в отдельной табличке для каждой записи в документообороте) в аксапте
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
01.02.2008, 17:38 | #5 |
Участник
|
их достаточно много > 50гб
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
01.02.2008, 17:49 | #6 |
MCTS
|
|
|
01.02.2008, 17:52 | #7 |
Участник
|
Sorry за офф-топик:
Цитата:
Сообщение от ivas
aLL woRk aNd nO JoY MAKes jAck a dULL Boy
aLL woRk aNd nO PLAY MAKes jAck a dULL Boy |
|
01.02.2008, 17:56 | #8 |
Участник
|
мысль интересная надо её подумать
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
01.02.2008, 17:57 | #9 |
Участник
|
мне первый вариант больше нравиться
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
03.02.2008, 06:11 | #10 |
Member
|
Цитата:
Сообщение от twilight
...
А почему бы просто не хранить документы в базе? ... А разве это влияет на производительность? ... Есть еще хороший вопрос про управление конфликтами на уровне доступа к файлам. И аспекты администрирования. С т.з. производительности влияет. Это бесспорно. Вопрос только насколько существенно (ощутимо). Если файлов мало или к ним редко обращаются, то я бы не ожидал ощутимого влияния от хранения файлов в БД на производительность работы сервера БД. Даже если файлы хранятся большие, то таблицу с файлами (DocuValue) можно хранить на отдельном дисковом массиве, затолкав ее в отдельную файловую группу*, которую в свою очередь можно затолкать в отдельный физический файл, который можно хранить на отдельном дисковом массиве. Т.о. влияние хранения документов на "раздутие" БД, дефрагментацию файлов данных и скорость ввода-вывода на дисковом массиве, где хранятся основные данные, можно нивелировать. Работа с документами врядли ощутимо нагрузит процессор сервера БД. Работа с документами при интенсивной работе с большими по размеру файлами достаточно ощутимо загрузит сетевой интерфейс на сервере БД. Работа с документами при интенсивной работе с большими по размеру файлами отнимет память на сервере БД под выполнение задач ввода-вывода. Затрудняюсь оценить насколько много. Попробую уточнить у специалистов. Или они сами тут напишут. Знаю точно, что в файловых серверах много памяти не бывает. Думаю, это не спроста. Последнее важно в связи с тем, то сервер БД сложно масштабировать. Если вы что-то понимаете в задачах и процессах администрирования сервера БД, то... даже при условии хранения файлов на отдельном дисковом массиве БД (как единая сущность) будет пухнуть. А значит будет пухнуть архив БД. А это уже увеличит время на сервисные процедуры с БД (архивирование). Того же стоит ожидать и в случае, если БД будет восстанавливаться из архива при необходимости такого восстановления. А время — деньги, как известно. Даже если учесть, что архивировать можно отдельные файлы данных, то процесс администрирования БД усложняется. И есть еще файл журнала транзакций БД. Насколько я знаю, его порезать на файловые группы не получится. А значит при вставке файла он будет расти, причем на основном массиве данных. И потом он будет архивироваться. А в случае сбоя — восстанавливаться. Но в любом случае вставка файла будет занимать ресурсы сервера БД. А если, например, сервер БД сконфигурирован в режиме зеркалирования (горячий stand by), то пошло-поехало. И наконец, стоит учитывать различия в функциональности документооборота, которые обусловлены тем или иным способом хранения файлов (скорее всего, это не полный список): - При хранении файлов в БД файлы всегда передаются по сети. Если же файлы хранить на файловом сервере, то на удаленных инсталляциях есть возможность организации локальных файловых хранилищ для определенных видов файлов с доступом в рамках высокоскоростных локальных каналов. - Мне пока на тестовой базе не удалось воспроизвести стабильную работу в режиме открыл файл, отредактировал, сохранил при работе с сохранением файлов в БД (я продолжу исследование данного вопроса и отпишу через некоторое время). Процесс сохранения измененных файлов при работе с файлами, которые хранятся в БД, не тривиален. В случае же если файлы хранятся на файловом сервере, то таких проблем не возникает. Если же файлы просто класть в БД... ну т.е. поправил — сохранил уже новую версию, то БД будет пухнуть. Хотя вариант имеет некотрые плюсы (версионность изменения файла хранится). - Контроль совместный доступ к файлу. При хранении файла на файловом сервере совместным доступом будет управлять ОС файлового сервера. При открытии хранящегося в БД файла контроль совместного доступа не осуществляется. Цитата:
Сообщение от twilight
...
Почему бы не настроить хранение таблиц документооборота на отдельном сервере? ... Или что вы имеете в виду? В общем, думайте сами, решайте сами, как говорилось... по-моему, в песне какой-то. _____________ * Здесь и далее я буду оперировать терминологией и функциональными возможностями MS SQL. Просто я с ним работаю и в определенной степени его знаю. С Oracle я же наоборот практически не знаком. Однако я склонен считать, что все, что я написал, одинаково справедливо и для Oracle. Возможно, эксперты Oracle меня поправят, если это не так.
__________________
С уважением, glibs® |
|
04.02.2008, 15:22 | #11 |
Участник
|
решили поступить так:
клиент будет "думать" что работает с БД, а AOS с файлами и передавать их в бинарном виде на клиента
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
04.02.2008, 15:26 | #12 |
MCTS
|
Цитата:
Сообщение от glibs
Если вы что-то понимаете в задачах и процессах администрирования сервера БД, то... даже при условии хранения файлов на отдельном дисковом массиве БД (как единая сущность) будет пухнуть. А значит будет пухнуть архив БД. А это уже увеличит время на сервисные процедуры с БД (архивирование). Того же стоит ожидать и в случае, если БД будет восстанавливаться из архива при необходимости такого восстановления. А время — деньги, как известно.
Цитата:
Сообщение от glibs
- Мне пока на тестовой базе не удалось воспроизвести стабильную работу в режиме открыл файл, отредактировал, сохранил при работе с сохранением файлов в БД (я продолжу исследование данного вопроса и отпишу через некоторое время). Процесс сохранения измененных файлов при работе с файлами, которые хранятся в БД, не тривиален.
Цитата:
Цитата:
А насчет производительности - пока не попробуешь, не узнаешь. |
|
04.02.2008, 15:26 | #13 |
Member
|
2 ivas
И "модифицировал-сохранил-все вернулось в хранилище" тоже будет работать?
__________________
С уважением, glibs® |
|
04.02.2008, 15:31 | #14 |
Member
|
Цитата:
Сообщение от twilight
...
Очень просто. Берете файл из базы, сохраняете локально, изменяете. По окончанию изменений добавляете в базу. Старый файл можно удалить. ...
__________________
С уважением, glibs® |
|
05.02.2008, 11:18 | #15 |
AX*****
|
Цитата:
Сообщение от glibs
Это, конечно, полумеры, но на всякий случай.
Для каждого типа документа можно указать разный каталог архива. С разными правами. Соответственно для каждого секретного вида документов отдельный тип документа настроить. Каталоги можно сделать "невидимыми" (приписать в конце имени $), чтобы меньше вредителей туда могло добраться. Оптимальный вариант закрыть доступ на уровне домена к ресурсам.. имхо.
__________________
О, как беден, как груб наш русский язык! [c] А.С.Пушкин |
|
05.02.2008, 12:10 | #16 |
Злыдни
|
На папку устанавливаем права для всех пользователей на Create и Modify (особые права для определенных групп назначаем сразу), для Owner устанавливаем все права. Мне кажется, такая схема должна работать. Только не давайте права на чтение на директорию, иначе все буду видеть список и смогут читать "чужие" файлы.
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
05.02.2008, 12:53 | #17 |
Участник
|
Цитата:
Сообщение от KiselevSA
На папку устанавливаем права для всех пользователей на Create и Modify (особые права для определенных групп назначаем сразу), для Owner устанавливаем все права. Мне кажется, такая схема должна работать. Только не давайте права на чтение на директорию, иначе все буду видеть список и смогут читать "чужие" файлы.
copy \\server\doc\doc00001.doc c:\doc\doc00001.doc copy \\server\doc\doc00002.doc c:\doc\doc00002.doc ... copy \\server\doc\doc99999.doc c:\doc\doc99999.doc и все содержимое у него в кармане
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
05.02.2008, 13:17 | #18 |
MCTS
|
умные у вас пользователи, если они батники умеют писать
|
|
05.02.2008, 13:29 | #19 |
Участник
|
не все конечно , однако достаточно одного такого чтобы информация попала куда ненадо тут также встает вопрос с админами домена они в любом случае будут иметь доступ ко всем файлам можно конечно хранить их на отдельном ресурсе который не будет в домене, но кто его админить будет не фин директор же
__________________
aLL woRk aNd nO JoY MAKes jAck a dULL Boy |
|
05.02.2008, 14:35 | #20 |
Злыдни
|
Цитата:
Сообщение от ivas
не все конечно , однако достаточно одного такого чтобы информация попала куда ненадо тут также встает вопрос с админами домена они в любом случае будут иметь доступ ко всем файлам можно конечно хранить их на отдельном ресурсе который не будет в домене, но кто его админить будет не фин директор же
__________________
люди...считают, что если техника не ломается, то ее не нужно ремонтировать. Инженеры считают, что если она не ломается, то нуждается в совершенствовании. |
|
Теги |
ax2009, ax3.0, документооборот, как правильно, права доступа |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|