Разделение базы данных MySQL для безопасности - PullRequest
1 голос
/ 16 ноября 2011

Я использовал sql (в основном mysql) годами, но не по профессиональному стандарту, поэтому я ищу толчок в правильном направлении.

В настоящее время я разрабатываю веб-приложение, которое будет собирать пользователяимена / адреса / электронные письма и т. д. в одном наборе таблиц, а также другую личную информацию в другом наборе таблиц.Естественно, они будут храниться в одной базе данных, но я рассматривал возможность разделения контактной информации пользователя в одной базе данных на отдельном сервере и всей другой информации на другую базу данных / сервер. Теория заключается в том, что хакеру придется взломать обе системы.чтобы получить что-нибудь очень полезное.

Я проводил поиски время от времени в течение нескольких недель и до сих пор не нашел такого дизайна.Это вообще сделано?Это излишне?Есть ли метод проектирования, чтобы приблизиться к нему, или мне придется свернуть все это самостоятельно?

Я нашел Является ли разделение баз данных законной мерой безопасности? , который, как я предполагаю, говоритэтот подход, вероятно, излишним.

Ответы [ 3 ]

1 голос
/ 16 ноября 2011

ИМХО, похоже, это неправильно. Распределяя данные по 2 БД, вы только увеличиваете сложность без разумной прибыли от безопасности.

Я думаю, что именно здесь можно использовать шифрование данных. Генерация ключа шифрования на основе учетных данных пользователя и шифрование / дешифрование важных данных по запросам пользователей. Поскольку личные данные должны показываться только этому пользователю, все должно быть в порядке.

1 голос
/ 16 ноября 2011

Я склонен думать, что это излишне.

Пожалуйста, проверьте мой ответ на этот вопрос: Обмен пользователями между двумя базами данных

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

0 голосов
/ 16 ноября 2011

Вот подход, который я использовал ранее:

Сервер1: БД Сервер2: SC

БД находится в сетевом домене, который доступен для общего доступа, но не может получить доступ к SC SC находится в сетидомен, который не доступен для общественности, но может получить доступ к SC

БД - это место, где вы хранили всю необходимую информацию, включая «действительно важные вещи».

Через указанный интервал (я использовал 5секунд) SC проверяет БД на наличие любых новых записей в любой таблице, которую может захотеть отслеживать (есть задание или запланированная задача), и шифрует важную информацию.

Хотя я использовал SQL Server 2005 и смог работатьв двух доменах (частный (внутренний) и общедоступный (для клиентского доступа), и то, что я только что поделился, было урезанным (удалено как можно больше MSSQL-эксклюзивных частей), упрощенной версией, с некоторыми усилиями, я думаю, было бы возможноСоздайте нечто подобное в MySQL, особенно если вы можете разместить две базы данных на разных физических машинах.

Хотя многие такжеХинк это излишне, эта идея была реализована.Это стоит дороже и требует больше работы, когда приходит время представления данных, но клиенты были довольны.

...