Как хранить конфиденциальную информацию в SQL Server 2008? - PullRequest
4 голосов
/ 25 августа 2010

Мне нужно хранить некоторую конфиденциальную информацию в таблице в SQL Server 2008. Данные являются строкой, и я не хочу, чтобы они были в удобочитаемом формате для всех, кто обращается к базе данных.

Что я имею в видуконфиденциальной информацией является база грязных / грязных слов.Мне нужно убедиться, что они не плавают в таблицах и файлах SQL.В то же время я должен иметь возможность выполнять такие операции, как «=» и «like» над строками.

Пока что я могу думать о двух вариантах;это сработает или какой вариант лучше?

  1. Хранить строку (varchar) в виде двоичных данных (BLOB)
  2. Хранить в каком-то зашифрованном формате, как мы обычно делаем с паролями.

Ответы [ 2 ]

2 голосов
/ 25 августа 2010

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

В противном случае вы , вероятно, захотите использовать предложение Конрада Фрикса о встроенной поддержке шифрования SQL Server.

Причина, по которой я это говорю, заключается в том, что вы говорите, что оба = и LIKE должны работать с вашими данными. Когда вы хэшируете строку с использованием хеш-алгоритма, такого как SHA / MD5 / и т. Д., Результаты не будут соответствовать семантике LIKE на человеческом языке.

Если точное равенство (=) является достаточным (т.е. вам действительно не нужно иметь возможность выполнять LIKE-запросы), вы можете использовать криптографическую функцию для защиты текста. Но имейте в виду, что однонаправленная хеш-функция запрещает вам получать список строк «без хэширования» - если вам нужно это сделать, вам нужно использовать алгоритм шифрования, где возможно дешифрование, например AES.

1 голос
/ 11 сентября 2010

Если вы используете rot13 , то вы все равно можете использовать = и LIKE.Это также относится к любому методу хранения, кроме базы данных SQL, если предотвращение случайных / случайных просмотров (включая индексацию поисковой системы, если список является общедоступным) так важно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...