У меня есть база данных клиентов, и когда я использую ее в презентации, на всякий случай я хотел бы скрыть некоторые конфиденциальные данные. Как лучше всего это сделать.
Я всегда могу написать сценарий для обновления столбца с помощью NewID () или чего-то в этом роде, но есть ли лучший способ сделать это.
Я исследовал в Интернете и обнаружил, что динамическое маскирование данных - это один из способов сделать это, но, к сожалению, он недоступен в SQL Server Express.
Любые мысли приветствуются.
Это классический пример ответа на вопрос другим вопросом. Моя команда улучшила проблему производительности, которая возникла у клиента, и мы проводим ретроспективу схватки, и мы хотели бы показать, какие улучшения были внесены и необходимо использовать эту базу данных. Есть вероятность, что некоторые заинтересованные стороны могут присоединиться, чтобы просто обезопасить себя, запутав данные.
Поэтому используйте тесты производительности в качестве демонстрации, а не фактические исходные данные из базы данных. Или просто замаскируйте окончательные результаты в своем выводе, но продемонстрируйте скорость извлечения данных. Или клонируйте имеющуюся базу данных и напишите однократный скремблер данных на новой. Я имею в виду, что вы задаете глупый вопрос с недостаточными данными о ваших потребностях в презентации и удивляетесь, почему вы получаете полусидячие ответы.
@MasonStedman, на самом деле представленный вариант использования является законным. Приложение содержит некоторые конфиденциальные данные. Разработчик хотел бы продемонстрировать данные, но не со значениями действительный. Таким образом, данные могут быть зашифрованы (в наборе представлений) для демонстрации.
Единственный способ сделать это, если вы не хотите просто скрывать свои конечные точки, - это создать промежуточную БД и заблаговременно скремблировать данные. Вы не хотите использовать функции во время выполнения, если хотите продемонстрировать эффективность
Также зависит от того, обрабатываете ли вы данные (т.е. используете счетчик) или возвращаете отдельные записи?
В зависимости от хранимых данных вам может не понадобиться ничего более сложного, чем, например:
UPDATE CUSTOMER
SET Name = 'David D Davidson', Address = 'House 1, ...';
Было бы не идеально, если бы у вас было несколько сотен таблиц, а также если бы вы хотели сохранить данные. Что бы вы сделали, если бы захотели вернуть исходные данные?
Я бы использовал промежуточную базу данных для демонстрационных целей, а не действующую базу данных, поэтому обновление полей, как указано выше, не приведет к потере данных.
Вы можете создать Посмотреть на столе. Включите в представление только столбцы нечувствительный. Не включайте в представление конфиденциальные столбцы.
Сделайте это для всех таблиц в вашей базе данных.
Сделайте демонстрацию, используя взгляды, а не базовые таблицы.
Не обновляйте данные, так как это приведет к их изменению.
Вы можете сохранить взгляды на всякий случай.
Если столбцы все в таблицах являются конфиденциальными, в качестве альтернативы, создаваемые вами представления могут включать столбцы, которые взбитый данных, используя (определяемые пользователем) функции базы данных. Например, если у вас есть числовые столбцы, представление может использовать функцию, которая производит разные данные (например: f (x) = 2x + 5). Вы также можете использовать тот же метод для столбцов даты, а также для столбцов строк. В последнем случае вы можете просто зашифровать данные, написав функцию базы данных, которая случайным образом смешивает символы.
Вероятно, вы не захотите использовать функции, если ваша цель - продемонстрировать эффективность ...
Зачем вам когда-либо использовать таблицу продуктов в живой презентации для людей, которым вы не хотите, чтобы данные (или период на самом деле)