Удаление данных о конфиденциальности из базы данных? - PullRequest
1 голос
/ 01 сентября 2011

Скажите, что мне нужно было поделиться базой данных с партнером. Очевидно, у меня есть информация о клиенте в этой базе данных. Если не считать прохождения и идентификации каждого столбца, который содержит информацию о конфиденциальности и собственный сценарий для «очистки» данных, есть ли какой-либо инструмент или сценарий, который может выполнять очистку данных, но сохранять формат в такте (например, если строка 5 символов, осталось бы 5 символов, только вычистить)?

Если нет, то как бы вы достигли чего-то подобного, предпочтительно в TSQL?

Ответы [ 3 ]

1 голос
/ 01 сентября 2011

Во-первых, мне нужно заявить о профессиональной заинтересованности: я работаю в IBM, у которой есть инструменты, которые делают именно это.

Шаг 1. Убедитесь, что вы идентифицируете все PII (Личная информация). При совместном использовании информации базы данных обычно встречаются очевидные имена столбцов, такие как «имя», но вам также необходимо найти «скрытые» данные, в которых либо данные встроены в стандартном формате, например строка-имя-строка и имя столбца - это нечто как "код ссылки" или в текстовых полях свободного формата. как вы уже видели, это не будет легкой работой, если вы не автоматизируете ее. Инструмент для этого - InfoSphere Discovery

Шаг 2. В каком контексте должны находиться «очищенные» данные. При изменении именованных полей на случайные символы возникают проблемы при тестировании, поскольку пользователи фокусируются на текстовых ошибках, а не на функциональных сбоях, поэтому изменяют имена на реальные, но вымышленные. Информация о кредитной карте часто должна быть «действительной». под этим я подразумеваю, что он должен иметь действительный префикс, скажем, 49XX, а остальные - недопустимую последовательность. Наконец, вы должны убедиться, что каждый экземпляр изменения распространяется через базу данных для обеспечения согласованности. Инструментом для этого является Optim Test Data Management с опцией конфиденциальности данных.

Два инструмента объединяются, чтобы обеспечить полное решение для конфиденциальности данных.

1 голос
/ 01 сентября 2011

Вы можете рассмотреть только общий доступ VIEW, создать ВИДЫ, чтобы скрыть данные, которыми вы не хотите делиться.

Пример:

CREATE VIEW v_customer
AS
SELECT 
   NAME,
   LEFT(CreditCard,5) + '****' As CreditCard  -- OR, don't show this column at all
   ....
FROM customer
0 голосов
/ 28 декабря 2015

Исходя из исходного вопроса, кажется, вам нужно, чтобы поля были одинаковой длины, но не в "допустимом" формате? Как насчет:

UPDATE customers
   SET email = REPLICATE('z', LEN(email))
       -- additional fields as needed

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

У меня сейчас нет базы данных MSSQL, но вы также можете найти все строковые столбцы, например:

SELECT *
  FROM INFORMATION_SCHEMA.COLUMNS
 WHERE DATA_TYPE IN ('...', '...')

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

...