несколько вопросов по БД, временное хранение данных, распр. с программой |
Здравствуйте, гость ( Вход | Регистрация )
несколько вопросов по БД, временное хранение данных, распр. с программой |
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 |
хочу перейти на защищенную БД А что ты под этим понимаешь?Как вообще можно скрыть от админа БД сообщения? Шифровать? да, можно шифровать.Для SQLite есть SQLCipher. А для других СУБД сомнительно, что найдутся бесплатные инструменты. |
|
|
mezmay |
15.1.2014, 21:30
Сообщение
#4
|
Активный участник Группа: Участник Сообщений: 272 Регистрация: 13.7.2009 Из: Ростов-на-Дону Пользователь №: 904 Спасибо сказали: 16 раз(а) Репутация: 1 |
Цитата Цитата Как вообще можно скрыть от админа БД сообщения? Шифровать? Шифровать. Думаю не надо пояснять что ключ не должен хранится в базе. Цитата Цитата Как распространять серьезную СУБД с дистрибутивом своей программы? А ее не нужно распространять. СУБД будет на сервере, а пользователь получит клиент. Защищает доступ к данным через логин-пароль Как вообще можно скрыть от админа БД сообщения? Шифровать? да, можно шифровать.Для SQLite есть SQLCipher. А для других СУБД сомнительно, что найдутся бесплатные инструменты. |
|
|
Litkevich Yuriy |
15.1.2014, 22:19
Сообщение
#5
|
разработчик РЭА Группа: Сомодератор Сообщений: 9669 Регистрация: 9.1.2008 Из: Тюмень Пользователь №: 64 Спасибо сказали: 807 раз(а) Репутация: 94 |
но ведь не обязательно шифровать родными субд-ными средствами? ну конечно не обязательно. Особенно если ты возможностями СУБД не собираешься пользоваться, а просто используешь её как примитивное хранилище. И тебя устраивает зашифровать одно поле БД с текстом.Если же ты собираешься использовать возможности 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 |
И у меня закралась мысль что все клиенты напрямую подключаются к БД. Нет, подключаются к серверу чата, ну а он работает с БД.А по сети они сейчас в открытом виде пересылаются? если да, то не вижу смысла во всём остальном, т.к отследить все сообщения отследить не составит труда. Как вариант, можно кодировать всё в base64 и уже потом отправлять. вариант лайтовы, но хоть уже что то будет. Сейчас перехожу на SSL сокеты, так что с пересылкой всё будет нормально. Остается тогда еще базу зашифровать из программы |
|
|
Текстовая версия | Сейчас: 22.11.2024, 0:30 |