Отслеживание доступа к данным - PullRequest
3 голосов
/ 24 марта 2011

Предыстория

Я работаю в компании, у которой есть веб-сайт, который позволяет пользователю отправлять текстовые данные для сбора. Мы собираем данные и делаем их доступными в Интернете. Пользователи могут делиться данными с другими пользователями.

Идем вперед

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

Текущая архитектура

В настоящее время мы используем Ruby / Rails и используем базу данных MySQL. Личная информация зашифрована в базе данных.

Доступ к данным для поддержки

Сегодня сотрудники службы поддержки могут получить доступ к данным одним из трех способов:

  1. Администратор сайта Администратор сайта ограничен теми экранами, которые мы разрабатываем. Пока мы этого не делаем, мы могли бы легко добавить ведение журнала, чтобы вести учет того, кто получал доступ к каким данным с помощью инструмента администратора.
  2. клиент sql Я использую MySQLWorkbench для доступа к производству. Однако при таком подключении вся личная информация (имя пользователя, номер сотового телефона и т. Д.) Шифруется.
  3. Консоль Ruby Rails. Наконец, служба поддержки может войти в один из рабочих ящиков и использовать консоль Ruby / Rails из командной строки. Ruby расшифровывает данные, поэтому мы можем сделать несколько простых вещей, таких как и = User.find_all_by_state ( 'активный') и он вернет набор записей всех пользователей с state = 'active' и расшифрует их личную информацию в наборе результатов.

Святой Грааль

  1. каротаж
  2. легкий доступ для поддержки

Мне бы очень хотелось, чтобы у меня был простой способ поддержки доступа (после проверки подлинности) к данным, но при этом регистрировалось бы все, к чему осуществляется доступ (чтение или обновление). Таким образом, если я проверяю данные бывшей жены моего приятеля, например, они записываются в место, куда я не могу войти и почистить контрольный журнал. (См. Google, увольняющий сотрудника Gmail, для примера того, как сотрудники нарушают политику данных).

У кого-нибудь есть идеи, мысли, опыт, предложения по этому вопросу?

Ответы [ 2 ]

0 голосов
/ 02 апреля 2011

Попробуйте хранимые процедуры.Заставьте весь код использовать хранимые процедуры для действий CRUD.Это определяет API, который ваши разработчики могут использовать, пока бизнес-правила применяются глобально (не возвращать все значения SSN, а только последние 4 цифры и т. Д.).

Это также служит основой для внешнего API.

Если вы хотите вести журнал / аудит, вы включаете его в процедуру.

Это защищает вас от всех, кроме администраторов баз данных.

0 голосов
/ 24 марта 2011

эй девгуй. Это было проблемой для меня пару месяцев назад. В итоге мы централизовали наши очереди mysql, чтобы мы могли отслеживать всю информацию, поступающую и выходящую. К сожалению, класс, который я написал, написан на PHP, но идея, лежащая в его основе, может облегчить начало регистрации.

https://code.google.com/p/php-centralized-mysql-controller/

...