crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

 
Ответить в данную темуНачать новую тему
> несколько вопросов по БД, временное хранение данных, распр. с программой
mezmay
  опции профиля:
сообщение 15.1.2014, 13:27
Сообщение #1


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Делаю клиент-серверный чат, несколько вопросов по базам данных:

1. Сейчас он на SQLite, хочу перейти на защищенную БД - MySql или PostgreSQL. Надо выбрать, исходя из всех требований
2. Сейчас все сообщения хранятся в базе постоянно, то есть админ компа, на котором она (база) стоит, может читать все сообщения. Нормальная ли это практика для, например, корпоративного чата, в котором планируется довольно много личной переписки. Как вообще принято делать? давать админу доступ или нет?
3. Как вообще можно скрыть от админа БД сообщения? Шифровать? Сразу удалять? (записывать сообщения в базу надо для реализации оффлайн-сообщений)
4. Как распространять серьезную СУБД с дистрибутивом своей программы? Хотелось бы чтобы установка проходила в автомате (далее-далее-далее), и пользователю не требовалось бы самому, например, запускать какие-то службы или дополнительные проги типа pgadmin.
5. Ну и вообще нужна БД, не требующая от меня, разработчика, много танцев с бубном...

Сообщение отредактировал mezmay - 15.1.2014, 16:01
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
ilyabvt
  опции профиля:
сообщение 15.1.2014, 16:34
Сообщение #2


Активный участник
***

Группа: Участник
Сообщений: 297
Регистрация: 23.6.2011
Пользователь №: 2765

Спасибо сказали: 45 раз(а)




Репутация:   3  


Цитата
давать админу доступ или нет?

Разумеется нет.
Цитата
Как вообще можно скрыть от админа БД сообщения? Шифровать?

Шифровать. Думаю не надо пояснять что ключ не должен хранится в базе.
Цитата
Как распространять серьезную СУБД с дистрибутивом своей программы?

А ее не нужно распространять. СУБД будет на сервере, а пользователь получит клиент.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.1.2014, 20:32
Сообщение #3


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mezmay @ 15.1.2014, 15:27) *
хочу перейти на защищенную БД
А что ты под этим понимаешь?
Цитата(mezmay @ 15.1.2014, 15:27) *
Как вообще можно скрыть от админа БД сообщения? Шифровать?
да, можно шифровать.
Для SQLite есть SQLCipher. А для других СУБД сомнительно, что найдутся бесплатные инструменты.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 15.1.2014, 21:30
Сообщение #4


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Цитата
Цитата
Как вообще можно скрыть от админа БД сообщения? Шифровать?

Шифровать. Думаю не надо пояснять что ключ не должен хранится в базе.
А где хранить?

Цитата
Цитата
Как распространять серьезную СУБД с дистрибутивом своей программы?

А ее не нужно распространять. СУБД будет на сервере, а пользователь получит клиент.
Я имею в виду будущему админу тоже дать дистрибутив программы сервера, и чтобы ему не приходилось самому устанавливать и настраивать СУБД


Цитата(Litkevich Yuriy @ 15.1.2014, 21:32) *
Цитата(mezmay @ 15.1.2014, 15:27) *
хочу перейти на защищенную БД
А что ты под этим понимаешь?
Защищает доступ к данным через логин-пароль

Цитата(Litkevich Yuriy @ 15.1.2014, 21:32) *
Цитата(mezmay @ 15.1.2014, 15:27) *
Как вообще можно скрыть от админа БД сообщения? Шифровать?
да, можно шифровать.
Для SQLite есть SQLCipher. А для других СУБД сомнительно, что найдутся бесплатные инструменты.
но ведь не обязательно шифровать родными субд-ными средствами?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 15.1.2014, 22:19
Сообщение #5


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


Цитата(mezmay @ 15.1.2014, 23:30) *
но ведь не обязательно шифровать родными субд-ными средствами?
ну конечно не обязательно. Особенно если ты возможностями СУБД не собираешься пользоваться, а просто используешь её как примитивное хранилище. И тебя устраивает зашифровать одно поле БД с текстом.

Если же ты собираешься использовать возможности SQL, такие как соединения, вложенные запросы, тригеры и прочее, то запрос должен выполнятся над расшифрованными данными, а на клиенте ты этого не сделаешь (т.к. запрос выполняется самой СУБД без участия клиента).
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 16.1.2014, 8:10
Сообщение #6


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


остается вопрос по распространению (развертыванию) СУБД вместе с дистрибутивом программы-сервера чата

Сообщение отредактировал mezmay - 16.1.2014, 9:45
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Litkevich Yuriy
  опции профиля:
сообщение 16.1.2014, 16:27
Сообщение #7


разработчик РЭА
*******

Группа: Сомодератор
Сообщений: 9669
Регистрация: 9.1.2008
Из: Тюмень
Пользователь №: 64

Спасибо сказали: 807 раз(а)




Репутация:   94  


воспользоваться каким-нибудь Установщиком, с помощью его сценария проверять установлена ли уже нужная версия СУБД или нет, если нет, ставить из своего дистрибутива.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 16.1.2014, 22:24
Сообщение #8


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


По некоторым вопросам:
1. Что касается конкретно MySQL, то после покупки их Oracle'ом он стал испытывать серьёзные проблемы с безопасностью и открытостью кода. Опенсорс комьюнити решило отказаться от него, теперь на многих Linux-платформах будет использоваться MariaDB, опенсорсный клон MySQL, поддерживаемый его оригинальными разработчиками. Некоторые дистрибутивы уже официально объявили о переходе с MySQL на MariaDB. Так что если и стоит выбирать базу, то с видами на будущее.

2. Если юзеров мучает паранойя, шифровать можно данные любой базы, любым методом. Просто будет гораздо больше кода и софтина будет медленнее работать.

Имхо, SQLite - простая и удобная для мелких приложений база. К тому же, она бесплатная и опенсорсная. Для такого приложения не требуются никакие особые возможности БД, поэтому чем меньше возни для админа - тем больше шансов у такой софтины завоевать хоть какую-то популярность.

Сообщение отредактировал Iron Bug - 18.1.2014, 19:24
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
electronik
  опции профиля:
сообщение 18.1.2014, 1:36
Сообщение #9


Студент
*

Группа: Участник
Сообщений: 23
Регистрация: 16.6.2012
Пользователь №: 3424

Спасибо сказали: 1 раз(а)




Репутация:   0  


Цитата
1. Сейчас он на SQLite, хочу перейти на защищенную БД - MySql или PostgreSQL. Надо выбрать, исходя из всех требований

Так а требования где?. А по сути, нужно делать на той, которую знаете. PostgreSQL и FireBird можно заюзать embedded версию, без инсталла. у последнего для связи юзается всего пара библиотек. Но при создании БД, нужно хорошо продумывать её структуру.
Цитата
Сейчас все сообщения хранятся в базе постоянно, то есть админ компа, на котором она (база) стоит, может читать все сообщения. Нормальная ли это практика для, например, корпоративного чата, в котором планируется довольно много личной переписки. Как вообще принято делать? давать админу доступ или нет?

Это тонкая грань безопастности. Если например есть служюа безопастности, то она скорее захочет иметь полный доступ. Штатный админ не должен иметь доступ ко всей переписке, а вот IT-директор или Генеральный директор должен. Но если сделать разраничение прав, то где гарантия что админ скажет директору что можно читать всю переписку, или тихонько добавит себя в "мне всё можно читать" и на равне с директором будет читать всю переписку. Возможность должна быть, но по-умолчанию не доступна. И у меня закралась мысль что все клиенты напрямую подключаются к БД.
Цитата
3. Как вообще можно скрыть от админа БД сообщения? Шифровать? Сразу удалять? (записывать сообщения в базу надо для реализации оффлайн-сообщений)

А по сети они сейчас в открытом виде пересылаются? если да, то не вижу смысла во всём остальном, т.к отследить все сообщения отследить не составит труда. Как вариант, можно кодировать всё в base64 и уже потом отправлять. вариант лайтовы, но хоть уже что то будет.
Цитата
5. Ну и вообще нужна БД, не требующая от меня, разработчика, много танцев с бубном...

Однозначно оставляйте SQLite. В во всех остальных случаях Вам придётся заниматься технической поддержкой БД, а то еще хуже, её обслуживанием.

Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
mezmay
  опции профиля:
сообщение 18.1.2014, 22:16
Сообщение #10


Активный участник
***

Группа: Участник
Сообщений: 272
Регистрация: 13.7.2009
Из: Ростов-на-Дону
Пользователь №: 904

Спасибо сказали: 16 раз(а)




Репутация:   1  


Цитата(electronik @ 18.1.2014, 2:36) *
И у меня закралась мысль что все клиенты напрямую подключаются к БД.
Нет, подключаются к серверу чата, ну а он работает с БД.

Цитата(electronik @ 18.1.2014, 1:36) *
А по сети они сейчас в открытом виде пересылаются? если да, то не вижу смысла во всём остальном, т.к отследить все сообщения отследить не составит труда. Как вариант, можно кодировать всё в base64 и уже потом отправлять. вариант лайтовы, но хоть уже что то будет.
Сейчас перехожу на SSL сокеты, так что с пересылкой всё будет нормально. Остается тогда еще базу зашифровать из программы
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.3.2024, 14:08