Сетевая версия и безопасность

Сетевая версия и безопасность

Сообщение zx_master » Вс дек 13, 2009 7:30 pm

Что-то я не очень хорошо понимаю принцип работы вашей системы по сети в многопользовательском режиме? В документации как-то об этом почти не упоминается.

Предположим БД у нас MySql

Очень хотелось бы знать как клиент работает с сетевой базой? Это прямая работа с MySql используя ограничения из настроек общей папке JDebet или это работа через сервер ДебетПлюс, который пропускает только запросы разрешенные пользователю?
Аватара пользователя
zx_master
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: Вс дек 13, 2009 7:19 pm

Сообщение Дарья » Пн дек 14, 2009 5:50 pm

В базовой настройке - это прямая работа с MySQL посредством JDBC с клиентской машины на сервер MySQL.
Аватара пользователя
Дарья
Консультант
 
Сообщения: 1774
Зарегистрирован: Пн июл 28, 2008 9:40 am

Сообщение zx_master » Пн дек 14, 2009 9:42 pm

Дарья писал(а):В базовой настройке - это прямая работа с MySQL посредством JDBC с клиентской машины на сервер MySQL.

Тоесть безопасности как таковой НЕТ. Любой клиент может скачать всю базу данных на свой ПК. ТК доступ у него напрямую к MySQL. В принципе любой клиент может и уничтожить всю БД.

А какие еще варианты настройки есть?
Аватара пользователя
zx_master
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: Вс дек 13, 2009 7:19 pm

Сообщение Дарья » Вт дек 15, 2009 10:28 am

Во первых, клиент имеет именно такой доступ, который ему дан на сервере mysql. Во вторых, на клиенте пользователь выполняет только те задачи, которые разрешены ему в Дебете. В третьих, пароль на подключение к СУБД пользователь может даже и не знать, если администратор устанавливает разные логин и пароль для подключения к СУБД и к Дебету, и не может изменять БД из других клиентских программ mysqlAdministrator или pgAdmin.
Аватара пользователя
Дарья
Консультант
 
Сообщения: 1774
Зарегистрирован: Пн июл 28, 2008 9:40 am

Сообщение zx_master » Вт дек 15, 2009 7:30 pm

Вы же написали "В базовой настройке - это прямая работа с MySQL посредством JDBC с клиентской машины на сервер MySQL."

Значит пароль подключения к БД каким то образом доступен для самой программы Дебет (откуда она его берет?). И если Дебет знает пароль прямого подключения к БД, то можно его как-то достать и подключится к БД используя другой софт. Для того, что бы клиент работал с базой ему как минимум нужен доступ на чтение - следовательно есть возможность копирования таблиц БД.

Как я понял права доступа пользователя и прочие настройки хранятся на сервере в сетевой папке JDebet. Если я правильно все понял, то пользователь может даже изменить эти настройки т.к. вы рекомендуете делать доступной для записи папку (JDebet) по сети?
Аватара пользователя
zx_master
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: Вс дек 13, 2009 7:19 pm

Сообщение Дарья » Ср дек 16, 2009 11:21 am

Если я правильно все понял, то пользователь может даже изменить эти настройки

Только администратор, доступ на редактирование только для администратора
если Дебет знает пароль прямого подключения к БД, то можно его как-то достать

Теоретически, "как-то" можно достать любой пароль :)
Что конкретно Вы предлагаете?
минимум нужен доступ на чтение - следовательно есть возможность копирования таблиц БД

Если пользователю разрешен доступ на чтение конкретной таблицы (документа, справочника) в Дебете и в СУБД, то он может и в Дебете просматривать эти данные или экспортировать, к примеру, в xls. Если ему не нужно давать доступ к конкретной таблице (документу, справочнику), то доступ можно закрыть как в Дебете, так и в СУБД к таблице.
Аватара пользователя
Дарья
Консультант
 
Сообщения: 1774
Зарегистрирован: Пн июл 28, 2008 9:40 am

Сообщение zx_master » Ср дек 16, 2009 1:51 pm

Что конкретно Вы предлагаете?

Логичнее организовать работу таким образом клиент Дебет подключается к серверу Дебет, и работает с БД через сервер Дебет. То есть серверная часть Дебет фильтрует все запросы пользователя и не пускает его выше полномочий, что определены правами доступа. К MySQL доступа нет вообще.

Если ему не нужно давать доступ к конкретной таблице (документу, справочнику), то доступ можно закрыть как в Дебете, так и в СУБД к таблице.

А как насчет варианта, когда пользователь должен иметь доступ к таблице, но только для тех записей, которые принадлежат ему, а записи других пользователей должны быть защищены.
Аватара пользователя
zx_master
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: Вс дек 13, 2009 7:19 pm

Сообщение Дарья » Ср дек 16, 2009 2:08 pm

Подумаем над Вашим предложением. Но при такой работе существенно падает производительность.
Аватара пользователя
Дарья
Консультант
 
Сообщения: 1774
Зарегистрирован: Пн июл 28, 2008 9:40 am

Сообщение zx_master » Ср дек 16, 2009 7:38 pm

Дарья писал(а):Подумаем над Вашим предложением. Но при такой работе существенно падает производительность.
Да я вас умоляю, какая там производительность. По сути дела клиент с сервером должен по xml-rpc общаться, а сервер напрямую с БД работает. Тем более если все это будет написано на Java и в правильном формате, а именно - сервер это отдельное приложение (не на базе Eclipse), которое: грузится как сервис вместе с системой, использует конфиг Дебет, работает только как транслятор запросов от клиента в MySql с разделением доступа.
Аватара пользователя
zx_master
Начинающий
Начинающий
 
Сообщения: 5
Зарегистрирован: Вс дек 13, 2009 7:19 pm

Сообщение Дарья » Чт дек 17, 2009 3:14 pm

В текущей версии у нас всё это реализовано с помощью web-служб. Проблема в производительности возникает при открытии (передаче на клиентскую машину) большого набора записей (несколько сотен тысяч). В текущей реализации они передаются все вместе и нужно время, чтобы их загрузить в объект. Когда сделаем виртуальный resultset, который будет храниться на стороне сервера, а на клиент подгружаться по мере просмотра конкретной записи, тогда проблема с производительностью отпадет. Но пока до этого руки не дошли, а платных заказов под это все дело не было.
Аватара пользователя
Дарья
Консультант
 
Сообщения: 1774
Зарегистрирован: Пн июл 28, 2008 9:40 am


Вернуться в Общие вопросы по работе программы

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7

cron