Я использую Rails 2.3.4
Я ищу не конкретный ответ на этот вопрос, а общие рекомендации по этому вопросу.
В нашей базе данных (MySQL) мы шифруем личную информацию (PII), такую как имя, адрес, номер телефона и т. Д. Но я все время получаю запросы на динамические запросы.
Например, «Можете ли вы запросить в БД, чтобы получить значения записей для определенной даты, но только для пользователей в списке кодов городов».
Итак, критерии выбора включают в себя некоторые зашифрованные данные PII, такие как код города их номера телефона.
Для этого обсуждения таблицы User и Entry имеют следующие поля интереса:
User.id, User.phone
Entry.user_id, Entry.value, Entry.created_at
Из-за шифрования я не могу подключиться к клиенту SQL и выполнить свой запрос «простым» способом, чтобы получить все записи от 21.11.2010 от пользователей в списке кодов городов (555 222 333), что-то вроде этого :
SELECT E.value, SUBSTR (U.phone, 2,3)
ИЗ ПОЛЬЗОВАТЕЛЕЙ U ВНУТРЕННИЕ РЕГИСТРАЦИОННЫЕ ВСТУПЛЕНИЯ
WHERE DATE (E.sent_at) = '2010-11-21'
AND SUBSTR (U.phone, 2,3) in ('555', '222', '333')
Я бы хотел сделать в консоли запрос, который мог бы дать мне похожие данные.
Похоже, что зашифрованные поля не могут использоваться в качестве критериев выбора, поэтому я предполагаю, что они не расшифровываются до тех пор, пока не наступит время их отобразить (а не запросить их).
Моим грубым болевым путем был следующий многоступенчатый процесс:
- выберите ВСЕ идентификаторы и коды регионов ВСЕХ активных пользователей.
User.all (: select => "id, phone",: условие => ["state = 'active'"])
- сделать снимок экрана терминала,
- копирование в текстовый редактор, массаж,
- вставить в Excel,
- использовать Excel-фильтр для получения идентификаторов пользователя только желаемых кодов городов,
- вставьте их в плоский файл, вставьте в список через запятую и затем
- вставьте в мой клиент SQL для запроса по user_id
SELECT * FROM записей, ГДЕ user_id IN () и дата (create_at) = ''.
"Должен быть лучший способ!" Какие-либо предложения? Заранее спасибо,